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