我尝试使用以下代码行添加客户端验证:
@Html.EnableClientValidation()
但我不断收到此错误消息:
编译器错误消息:CS1502:“Microsoft.WebPages.WebPageUltimateBase.Write(Microsoft.WebPages.Helpers.HelperResult)”的最佳重载方法匹配具有一些无效参数
这适用于其他任何人,还是ASP MVC 3中的另一种方法?
答案 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>