在Razor视图中启用客户端validation(ASP MVC 3)

我尝试使用以下这行代码添加客户端validation:

@Html.EnableClientValidation()

但是我不断收到这个错误消息:

编译器错误消息:CS1502:“Microsoft.WebPages.WebPageUltimateBase.Write(Microsoft.WebPages.Helpers.HelperResult)”的最佳重载方法匹配有一些无效参数

这是否为其他人工作,或者这是在ASP MVC 3的另一种方法?

您可以改为使用以下内容代替预期的代码行。

 @(ViewContext.ClientValidationEnabled = true) 

可能是在htmlhelper的扩展方法中的一个疏忽。

实际上,您可以通过执行以下操作来使用HtmlHelper方法

 @{ Html.EnableClientValidation(); } 

嘿,在ASP.NET MVC3中,不需要在视图页面中添加Html.EnableClientValidation(),而只需在webconfig文件中启用clientValidation,如下所示:

 <appSettings> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> 

这个标签

  @{ Html.EnableClientValidation(false); } 

必须在之前

  @using (Html.BeginForm()) 

你在页面上使用html <form>元素而不是Html.BeginForm来创build你的HTML FORM。

我有这个完全相同的问题,并解决这是因为我没有使用Html.BeginForm来创build我的FORM导致所需的input属性data-val-required="The Email field is required." data-val="true" class="input-validation-error data-val-required="The Email field is required." data-val="true" class="input-validation-error ,即使我插入了@Html.ValidationMessageFor(m => m.User.Role) ,validation的占位符也没有被注入页面我的查看页面。

在我的情况下,我没有使用EditorFor,但TextBoxFor!

确保你使用:

  <td>@Html.EditorFor(m => m.Email)</td>