【发布时间】:2010-05-02 22:13:20
【问题描述】:
据我所知,ModelState.IsValid 仅由 MVC 框架在完整回发时计算,是这样吗?
我有一个这样的 jquery 回发:
var url = "/path/to/controller/myaction";
var id = $("#Id").val();
var somedata = $("#somedata").val(); // repeated for every textbox
$.post(url, { id: id, somedata: somedata },
function (data) {
// etc
});
控制器动作如下:
public JsonResult MyAction(MyModel modelInstance)
{
if (ModelState.IsValid)
{
// ... ModelState.IsValid is always true, even when there is invalid data
}
}
但这似乎不会触发 ModelState.IsValid。例如,如果 somedata 长度为 5 个字符,但 DataAnnotation 显示 [StringLength(3)] - 在这种情况下 ModelStae.IsValid 仍然为 true,因为它尚未被触发。
在制作 jquery/ajax 帖子而不是完整帖子时,我需要做些什么特别的事情吗?
谢谢!
【问题讨论】:
标签: c# asp.net-mvc jquery data-annotations