我在 razor View 引擎上有一个 ajax 表单。为了验证我使用数据注释类。当用户提交表单时,验证工作正常,验证消息工作正常。 问题是,验证不适用于 keyup 或模糊事件。
如何在不提交 ajaxform(ajax.beginform) 的情况下激活验证
这是我的 View 代码:
@using (Ajax.BeginForm(new AjaxOptions { InsertionMode = InsertionMode.Replace,
UpdateTargetId = "employeeDetail", HttpMethod = "Post", OnComplete = "Complete",
Confirm = "Confirm?" }))
{
@Html.TextBoxFor(model => model.Email)
@Html.ValidationMessageFor(model=>model.Email)
<span style="float:right"><input type="submit" class="tableGenelButton" id="submitButton" value="Kaydet" /></span>
}
型号:
[RequiredWithMessage]
[Display(Name = "E-Mail")]
public string Email { get; set; }
最佳答案
更新:
好吧,显然您正在使用 Ajax.BeginForm
,它使用 MicrosoftAjax 而不是 jQuery(我之前没有意识到)。这需要一些额外的工作来启用客户端验证:
你需要
<% Html.EnableClientValidation(); %>
页面中的某个位置,还链接到 MicrosoftAjax.js
、MicrosoftMvcAjax.js
和 MicrosoftMvcValidation.js
这是您可能感兴趣的链接:
要为自定义验证属性启用客户端验证(我猜 [RequiredWithMessage]
就是其中之一),您必须实现 IClientValidatable interface 。
这里有一篇文章解释了如何做到这一点:
关于ajax - AjaxForm 上的 ASP.Net MVC 3 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5938684/