15

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

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

我已经编写了一些代码,但我想知道是否已经有办法自动执行它,即如果我将 HTTP Bad Request 作为 AJAX 响应捕获,我想从响应正文中取出模型状态错误并将它们插入不显眼的验证。

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

谢谢!

4

1 回答 1

21

您可以返回带有Json结果的错误(如何从 asp.net mvc modelState 获取所有错误?):

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

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

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

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

validator.settings.rules

或者

validator.settings.messages

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

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

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

于 2012-10-26T21:10:31.540 回答