【发布时间】:2014-08-02 20:33:56
【问题描述】:
Ajax.beginform 验证仅在控制器中运行。我想在客户端验证模型。
示例助手:
<label class="control-label">@Html.DisplayNameFor(Function(m) m.Name)</label>
@Html.TextBoxFor(Function(m) m.Name,New With{.class="form-control"})
@Html.ValidationMessageFor(Function(M) M.Name)
脚本:
<script src="@Url.Content("~/Scripts/Admin/js/jquery-1.10.2.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"></script>
模型属性
<Display(Name:="UserName", ResourceType:=GetType(UserStrings))>
<Required(ErrorMessage:="Username is required")>
Public Property Uname As String
网页配置:
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
表格:
@Using (Ajax.BeginForm("newUser", "Admin", New AjaxOptions With {.InsertionMode = InsertionMode.Replace,
.HttpMethod = "POST",
.UpdateTargetId = "allusers"}))
【问题讨论】:
-
您的模型是否有任何从
System.ComponentModel.DataAnnotations继承的ValidationAttribute实例?您的 web.config 是否同时具有<add key="ClientValidationEnabled" value="true" />和<add key="UnobtrusiveJavaScriptEnabled" value="true" />? -
我在 question 中添加了 web config 和 model 属性。我觉得这里没有问题
-
你的表单标签是什么样子的?
-
@cptc 是的,看起来正确,并且应该可以正常工作。您尝试过哪些浏览器,是否查看了浏览器中的调试器以检查 javascript 错误?
-
@MikeGuthrie 是的,我查看了 chrome 控制台,但这里没有错误。
标签: asp.net-mvc validation razor asp.net-ajax