参数绑定对象 [FromBody] 不可选
Parameter binding object [FromBody] not optional
我正在使用 WebAPI 和 Swashbuckle 来测试和生成客户端代码。
在我的网络应用程序中,我有一个以对象作为参数的方法:
[Route("Orders/SendReport")]
[HttpPost]
public HttpResponseMessage Orders(string email,[FromBody]ReportOrders reportOrders){
...
}
在 SwaggerUI 中,此方法在此对象参数的 DataType 部分中显示此示例:
**Model:**
ReportOrders {
date1 (string, optional),
date2 (string, optional),
status (string, optional),
codformula (string, optional)
}
有没有办法使这些参数(显然是 ReportOrders class 的属性)不是可选的?这是当前的 ReportOrders class:
namespace Myapp.Models
{
public class ReportOrders
{
public DateTime date1 { get; set; }
public DateTime date2 { get; set; }
public string status { get; set; }
public string codformula { get; set; }
}
}
您需要将模型中的属性标记为[Required]
:
public class ReportOrders
{
[Required]
public DateTime? date1 { get; set; }
[Required]
public DateTime date2 { get; set; }
[Required]
public string status { get; set; }
[Required]
public string codformula { get; set; }
}
我还使 DateTimes 可以为空,否则您无法知道它们是否已填充。
我正在使用 WebAPI 和 Swashbuckle 来测试和生成客户端代码。 在我的网络应用程序中,我有一个以对象作为参数的方法:
[Route("Orders/SendReport")]
[HttpPost]
public HttpResponseMessage Orders(string email,[FromBody]ReportOrders reportOrders){
...
}
在 SwaggerUI 中,此方法在此对象参数的 DataType 部分中显示此示例:
**Model:**
ReportOrders {
date1 (string, optional),
date2 (string, optional),
status (string, optional),
codformula (string, optional)
}
有没有办法使这些参数(显然是 ReportOrders class 的属性)不是可选的?这是当前的 ReportOrders class:
namespace Myapp.Models
{
public class ReportOrders
{
public DateTime date1 { get; set; }
public DateTime date2 { get; set; }
public string status { get; set; }
public string codformula { get; set; }
}
}
您需要将模型中的属性标记为[Required]
:
public class ReportOrders
{
[Required]
public DateTime? date1 { get; set; }
[Required]
public DateTime date2 { get; set; }
[Required]
public string status { get; set; }
[Required]
public string codformula { get; set; }
}
我还使 DateTimes 可以为空,否则您无法知道它们是否已填充。