为什么我的模型状态在使用ajax Post时更新了

时间:2014-07-23 14:25:28

标签: c# .net ajax asp.net-mvc fluentvalidation

为什么即使出现错误,控制器中的ModelState也不会更新或显示为true。这是我的代码

$('#extracontent').on('click', '#Save', function () {
    $.ajax({
            type: frm.attr('method'),
            url: frm.attr('action'),
            data: $('#form').serializeArray(),
            success: ...,
            error: ...
            }
        });
    //}
});

[Authorize]
[HttpPost]
public ActionResult Edit(EditUserModel savedUserModel)
{
    if (!ModelState.IsValid) // model.isValid is true even when there is an error in model
        return PartialView....

我已经尝试过使用了 TryUpdateModel(savedUserModel) 的UpdateModel(savedUserModel)

但模型状态仍然有效...验证确实有效,我已经使用简单的POST回测试了

1 个答案:

答案 0 :(得分:0)

现在我很尴尬,经过markpsmith的问题并开始粘贴我的模型验证我意识到用于渲染视图的对象类和参数中使用的对象类是不同的对象,但具有非常相似的属性,这就是为什么绑定属性都正确填充但验证从未执行,因为参数中的对象没有运行验证....

无论如何将保存控制器更改为正确的模型来解决这个问题。