Asp.net mvc 在Razor视图中启用客户端验证(ASP MVC 3)
我尝试使用以下代码行添加客户端验证:Asp.net mvc 在Razor视图中启用客户端验证(ASP MVC 3),asp.net-mvc,razor,asp.net-mvc-3,Asp.net Mvc,Razor,Asp.net Mvc 3,我尝试使用以下代码行添加客户端验证: @Html.EnableClientValidation() 但我一直收到这样的错误信息: 编译器错误消息:CS1502:与“Microsoft.WebPages.WebPageUltimateBase.Write(Microsoft.WebPages.Helpers.HelperResult)”匹配的最佳重载方法具有一些无效参数 这是否适用于其他人,还是ASP MVC 3中的另一种方法?您可以使用以下代码代替预期的代码行 @(ViewContext.Cli
@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
元素而不是html.BeginForm
来创建html表单
我遇到了完全相同的问题,并解决了这一问题,因为我没有使用Html.BeginForm
来创建我的表单,从而产生所需的输入属性data val required=“电子邮件字段是必需的。”data val=“true”类=“输入验证错误
,验证的占位符未被注入页面,即使我在查看页面上插入了@Html.ValidationMessageFor(m=>m.User.Role)
。此标记。”
@{ Html.EnableClientValidation(false); }
必须赶在
@using (Html.BeginForm())
在我的例子中,我没有使用EditorFor,而是使用TextBoxFor 确保您使用:
<td>@Html.EditorFor(m => m.Email)</td>
@Html.EditorFor(m=>m.Email)
感谢您的回复,但当我将您的代码行放入视图时,它所做的只是将True
输出到页面中。我必须把代码放在特殊的地方吗?现在我用(Ajax.begin)将它放在我的@上面(…
它不能仅与@一起工作的原因是@希望向浏览器写入一些内容,但EnableClientValidation不会返回任何内容,因此Microsoft.WebPages.WebPageUltimateBase.write会失败。我想这是可行的。我没有启动客户端验证,但这可能是因为其他原因。嗯……嗯,首先,我说检查页面的源代码,确保输出了验证JS。(我肯定是的,但总是需要检查),然后确保有@Html.ValidationMessageFor(m=>m.Property)因此验证消息知道去哪里。Thx,我忘记了验证消息。现在可以工作了!顺便说一句,您还应该在视图或布局页面中放置jqueryvalidation js文件。是的:NuGet和添加jquery.validate.min.js
和jquery.validate.unobtrusive.min.js
。