在Razor视图上调用ajax后显示模型状态错误

时间:2012-10-26 19:27:37

标签: ajax asp.net-mvc-3 validation

我有@ Html.ValidationMessageFor帮助器和jquery不显眼的验证设置的剃刀视图。

我想调用控制器/操作并通过使用已经设置的相同验证逻辑来​​显示操作返回的最终模型状态错误。

我已经制作了一些代码,但是我想知道是否已经有办法自动完成,即如果我将HTTP错误请求捕获为AJAX响应,我想从响应体和插件中取出模型状态错误他们进行不引人注目的验证。

我正在寻找完整的推荐解决方案,而不是解决方法:)

谢谢!

1 个答案:

答案 0 :(得分:18)

您可以使用Json结果(How to get all Errors from asp.net mvc modelState?)返回错误:

var allErrors = ModelState.Values.SelectMany(v => v.Errors);

然后手动显示错误。获取表单验证器:

var validator = $("form").validate();

然后检查您的字段是否已正确初始化,例如您可以在此处查看(可选步骤):

validator.settings.rules

OR

validator.settings.messages

如果一切正常,那么您可能会显示错误:

validator.showErrors({"Password": "Too simple!"});

Password是字段名称,Too simple!是错误消息。