用于JQuery验证的远程验证规则失败(使用MVC 2)
|
我的标记中有一个要向服务器验证的字段。我的表单当前如下所示:
<% using (Html.BeginForm()){ %>
<%: Html.Serialize(\"regData\", Model)%>
<div class=\"RegistrationGroup\">
<p><label for=\"Account_Email\">e-mail</label> <%: Html.EditorFor(x => x.Account.Email) %><span class=\"ErrorMessage\"></span></p>
</div>
<% } %>
然后在我的jQuery脚本中,我有以下代码:
$(\"form\").validate({
rules: {
\"Account.Email\": {
required: true,
email: true
remote: \"Registration/ValidateEmail\"
}
}
});
在我的RegistrationController类中,我具有以下方法:
public string ValidateEmail(string email)
{
if (email.Contains(\"oek\"))
return \"false\";
return \"true\";
}
因此,对于测试,这应该返回false,并且如果电子邮件地址中的某处有“ 3”,则验证失败。
但是,这不起作用。
如果没有远程部分,则必需规则和电子邮件规则会按预期运行,因此我知道它们正在运行。
当我添加远程规则时,将发生以下步骤:
控制器上的方法按计划被调用,电子邮件地址作为参数。
从浏览器内部截取的方法返回的值分别为true或false(我使用Chrome \的开发人员工具来控制此值)。
但是,此时的验证无法按计划进行,并且在完成远程呼叫后,所需规则和电子邮件规则也将停止工作。 (在其他规则通过验证之前,它不会尝试强制执行远程规则,这当然是一件好事)。
我也尝试过返回带有true或false的JsonResult,但无济于事。
我在这里做错了什么?
没有找到相关结果
已邀请:
2 个回复
芳菱挨啡
同样,您在遵循“ 5”规则后仍缺少逗号:
或者,如果这是一个单独的javascript文件,则可以在电子邮件字段上使用HTML5
属性:
更新: 完整的工作示例。确保在“ 9”操作中正确绑定了电子邮件操作参数。 模型:
控制器:
视图:
社攻取墟槽