我知道这是一个非常普遍的问题,但是找不到解决我问题的任何人。
我正在使用Asp.net mvc5。我正在使用提供asp的助手进行Ajax调用。模板中的代码如下所示。
@using (Ajax.BeginForm("Register", "Account",null , new AjaxOptions
{
HttpMethod = "POST",
Url = "/Account/Register/",
OnSuccess = "onSuccess"
}))
{
<p>@Html.ValidationMessage("Register.Email")</p>
@Html.TextBox("Email", null, new { placeholder = "Enter your email")
<input type="submit" value="submit" />
}
我这里的问题是,我想显示使用ajax回调从服务器发出的验证错误,而无需重新渲染页面。
现在我的问题是。如何在控制器上编写动作以自动处理此问题?我的意思是,当模型无效时,在填充了错误字段的控制器操作上返回某些内容的方式是什么。
任何帮助将不胜感激,谢谢。
如果将模型状态错误添加为控制器中的键值对,则可以使用以下方法显示它们。
的JavaScript
这将找到所有带有模型状态错误键的验证消息,并将红色错误消息添加到其中。请注意,您可能需要对此进行调整,以针对按键显示许多错误消息。
public doValidation(e)
{
if (e.data != null) {
$.each(e.data, function (key, value) {
$errorSpan = $("span[data-valmsg-for='" + key + "']");
$errorSpan.html("<span style='color:red'>" + value + "</span>");
$errorSpan.show();
});
}
}
看法
添加OnFailure
指向新创建的doValidation
javascript方法的参数。参数e自动从json结果传递过来。这doValidation
可以从内您的任何JavaScript方法被调用,所以你可能需要从调用它onSuccess
了。
{
HttpMethod = "POST",
Url = "/Account/Register/",
OnSuccess = "onSuccess",
OnFailure = "doValidation"
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句