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

Mar*_*tin 38 asp.net-mvc razor asp.net-mvc-3

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

@Html.EnableClientValidation()

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

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

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

Bui*_*ted 75

相反,您可以使用以下代码来代替预期的代码行.

@(ViewContext.ClientValidationEnabled = true)
Run Code Online (Sandbox Code Playgroud)

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

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

@{ Html.EnableClientValidation(); }
Run Code Online (Sandbox Code Playgroud)

  • 它不能与@一起工作的原因是因为@期望向浏览器写一些内容,但EnableClientValidation不返回任何内容,因此Microsoft.WebPages.WebPageUltimateBase.Write因此失败 (10认同)

bea*_*g09 67

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

<appSettings>
  <add key="ClientValidationEnabled" value="true" />
  <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一下,你还应该在视图或布局页面中放置jqueryvalidation js文件. (9认同)
  • 是的:NuGet [jQuery.Validation.Unobtrusive](http://nuget.org/packages/jQuery.Validation.Unobtrusive)并添加`<script src ="@ Url.Content("〜/ Scripts/jquery.validate.min .js")"type ="text/javascript"> </ script>`用于`jquery.validate.min.js`和`jquery.validate.unobtrusive.min.js`. (7认同)

小智 6

这个标签

     @{ Html.EnableClientValidation(false); }
Run Code Online (Sandbox Code Playgroud)

必须来到

  @using (Html.BeginForm())
Run Code Online (Sandbox Code Playgroud)