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

时间:2010-09-12 14:27:28

标签: asp.net-mvc razor asp.net-mvc-3

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

@Html.EnableClientValidation()

但我不断收到此错误消息:

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

这适用于其他任何人,还是ASP MVC 3中的另一种方法?

5 个答案:

答案 0 :(得分:75)

您可以使用以下代码代替预期的代码行。

@(ViewContext.ClientValidationEnabled = true)

可能是对htmlhelper扩展方法的疏忽。

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

@{ Html.EnableClientValidation(); }

答案 1 :(得分:67)

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

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

答案 2 :(得分:6)

此标记

     @{ Html.EnableClientValidation(false); }

必须在

之前
  @using (Html.BeginForm())

答案 3 :(得分:4)

您是否在页面上使用html <form>元素而不是Html.BeginForm来创建html FORM。

我遇到了同样的问题并且解决了这个问题是因为我没有使用Html.BeginForm创建我的FORM,导致所需的输入属性data-val-required="The Email field is required." data-val="true" class="input-validation-error并且验证的占位符不是即使我在我的视图页面上插入@Html.ValidationMessageFor(m => m.User.Role),也会注入页面。

答案 4 :(得分:0)

就我而言,我没有使用EditorFor,而是使用TextBoxFor!

确保使用:

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