参数绑定对象[FromBody]不是可选的

时间:2017-05-09 23:07:14

标签: asp.net asp.net-web-api swagger swashbuckle

我正在使用WebAPI和Swashbuckle来测试和生成客户端代码。 在我的Web应用程序中,我有一个方法,其中一个对象作为参数:

[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类的属性)不是可选的?这是当前的ReportOrders类:

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; }
    }
}

1 个答案:

答案 0 :(得分:0)

您需要将模型中的属性标记为[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设为Nullable,否则您无法知道它们是否已填充。