我有一个表格,唯一需要的项目是客户姓名。所以在我的模型中,我有:
[DisplayName("Customer name*:")]
[Required]
public string CustomerName
{ get; set; }
以前,我在写一篇 HTML 帖子,一切正常,包括验证。
现在,我使用 Ext.direct.mvc ( http://code.google.com/p/ext-direct-mvc/ ) 对表单进行了“ajaxified”,这是一个重要的事实,并在 Json 中发布数据格式并且数据已成功发布。
当我在我的代码中放置断点时(目前为调试目的而修改):
[DirectInclude]
[HttpPost]
public ActionResult SaveOrUpdateOrderLines(CustomerOrderModel customerOrderModel)
{
if (!ModelState.IsValid)
{
return ModelState.JsonValidation();
}
return null;
我看到 CustomerOrderModel.CustomerOrderHeader.CustomerName = ""
但是 ModelState.IsValid 是真的。
现在对于我尝试过的一些事情:
我在检查 ModelState.isValid 之前插入了以下代码,以确保 CustomerName = null
customerOrderModel.CustomerOrderHeader.CustomerName = null;
我尝试使用 TryUpdateModel(customerOrderModel) 但收到以下错误消息:
TryUpdateModel 引发了“System.MissingMethodException”类型的异常
我尝试修改 json 数据,以便将“root”“CustomerOrderHeader”重命名为“customerOrderModel”以匹配参数。
这些事情都没有奏效。那么我做错了什么,验证不再起作用?我可以采取哪些步骤来调试问题?
编辑辅导员Ben
编辑 2 为辅导员本