我正在用ASP. NET网络应用编程接口编写一个网络应用编程接口,并使用以下视图模型。当一个特定属性上有两个验证属性(即[必需的]和[字符串长度(10)])时,我似乎对数据绑定有问题。
当将JSON值从客户端发布到窗体的控制器操作时:
//发布api/列表
公开作废帖子([FromBody]TaskViewModel taskVM)
我认为:
知道为什么会这样吗?干杯
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; }
}
你需要检查500内部服务器里面有什么
然后你可以看到服务器上出了什么问题,并进一步解决你的问题。
在你的情况下,答案如下:
“消息”:“发生错误。”,“异常消息”:“MVCpApdio3.3。控制器。TaskVIEW模型”的“属性”开始日期无效。标记为“必需”的值类型的属性也必须标记为[DATAMEMPORE(ISDATION = TRUE)]。“异常类型”:“System.InvalidOperationException”
所以你的问题不是你有两个属性,而是你用[Required]
标记了你的属性。为了解决这个问题,异常会告诉你该怎么做。
您需要将[Data成员(Is必需=true)]
添加到您所需的属性中,其中属性类型是值类型(例如int,datatime等):
因此,将您的TaskViewModel
更改为:
[DataContract]
public class TaskViewModel
{
//Default Constructor
public TaskViewModel() { }
[DataMember]
public Guid TaskId { get; set; }
[Required]
[DataMember]
[StringLength(10)]
public string Description { get; set; }
[Required]
[DataMember(IsRequired = true)]
[DataType(DataType.DateTime)]
public System.DateTime StartDate { get; set; }
[Required]
[DataMember]
public string Status { get; set; }
[DataMember]
public System.Guid ListID { get; set; }
}
一些旁注:
本文向大家介绍asp.net core系列之模型绑定和验证方法,包括了asp.net core系列之模型绑定和验证方法的使用技巧和注意事项,需要的朋友参考一下 一. 模型绑定 ASP.NET Core MVC 中的模型绑定,是将 HTTP 请求中的数据映射到 action方法参数。 这些参数可能是简单类型的参数,如字符串、整数或浮点数,也可能是复杂类型的参数。 当 MVC 收到 HTTP 请
As we learned earlier in the book, the validate method on a Model is called before set and save, and is passed the model attributes updated with the values from these methods. By default, where we def
我为我的模型定制了一个 : 我希望当在请求中传递无效值时,HTTP400错误请求将自动返回。然而,这种情况并不发生。如果存在任何绑定错误,应该怎样做才能使Web API返回HTTP400?
javafx属性是将数据模型连接到javafx gui的好方法,因为它们的绑定模型实现了强大的通知更新机制。 属性和绑定并不严格地与GUI相关,而是对JavaBeans的扩展。 因此,我们希望在应用程序模型类中使用它们,而不引入对包的依赖关系,并且通常来自. 换句话说:(update) 我可能需要将应用程序分成两个模块。 一个模块应该只包含操作数据的类(模型类,说MVC)。 第二个模块将包含所有图
我有一个ASP. NET核心Web API。 一个endpoint,它接受一个名为搜索的模型。它有一个名为表达式类型查询的属性。这个表达式对象有子类。 我将以下JSON发布到我的endpoint(应用程序的内容类型/JSON) {"查询":{"字段ID":"主体","值":"蛋糕","运算符":"匹配"}} 首先,查询参数只是基本表达式——一个多态性问题! 所以我以为是定制的模型活页夹。 我可以针
我正在使用ASP.NET Web API和Code First实体框架,从我所读到的内容来看,您通常应该在操作方法中直接公开DTO对象,而不是实体对象(根据http://www.asp.net/web-api/overview/data/using-web-api-with-entityframework/part-5)。 因此,在我正在处理的一个案例中,为了避免上面链接中描述的“过度发布”问题,