我正在使用 ASP.NET Web API 编写 Web API,并使用以下视图模型。当特定属性(即 [Required] 和 [StringLength(10)])上有两个验证属性时,我似乎遇到了数据绑定问题。
将 JSON 值从客户端发布到表单的控制器操作时:
// 发布 api/列表
公共无效帖子([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; }
}