【发布时间】:2013-01-24 10:36:33
【问题描述】:
我正在使用 ASP.NET Web API 编写 Web API,并使用以下视图模型。 当特定属性上有两个验证属性(即 [Required] 和 [StringLength(10)])时,我似乎遇到了数据绑定问题。
将 JSON 值从客户端发送到表单的控制器操作时:
// POST api/列表
public void Post([FromBody] TaskViewModel taskVM)
我观察到以下几点:
- 如果我删除多个属性中的一个,则一切正常;
- 如果我保留多个属性,客户端会收到 500 内部服务器错误,并且永远无法到达 Post 方法的主体。
任何想法为什么会发生这种情况? 干杯
public class TaskViewModel
{
//Default Constructor
public TaskViewModel() { }
public static TaskViewModel MakeTaskViewModel(Task task)
{
return new TaskViewModel(task);
}
//Constructor
private TaskViewModel(Task task)
{
this.TaskId = task.TaskID;
this.Description = task.Description;
this.StartDate = task.StartDate;
this.Status = task.Status;
this.ListID = task.ListID;
}
public Guid TaskId { get; set; }
[Required]
[StringLength(10)]
public string Description { get; set; }
[Required]
[DataType(DataType.DateTime)]
public System.DateTime StartDate { get; set; }
[Required]
public string Status { get; set; }
public System.Guid ListID { get; set; }
}
【问题讨论】:
标签: validation asp.net-web-api model-binding