web-dev-qa-db-ja.com

Razorビューでクライアント検証を有効にする(ASP MVC 3)

次のコード行を使用して、クライアント側の検証を追加しようとしています。

@Html.EnableClientValidation()

しかし、私はこのエラーメッセージを受け取り続けます:

コンパイラエラーメッセージ:CS1502: 'Microsoft.WebPages.WebPageUltimateBase.Write(Microsoft.WebPages.Helpers.HelperResult)'に最適なオーバーロードメソッドの一致には無効な引数があります

これは他の誰かのために働いていますか、それともASP MVC 3?

38
Martin

代わりに、予想されるコード行の代わりに次を使用できます。

@(ViewContext.ClientValidationEnabled = true)

おそらくhtmlhelperの拡張メソッドの監視。

実際には、次のことを行うことでHtmlHelperメソッドを使用できます

@{ Html.EnableClientValidation(); }
75
Buildstarted

ちょっと、ASP.NET MVC3では、ビューページにHtml.EnableClientValidation()を追加する必要はありません。代わりに、webconfigファイルでclientValidationを以下のように有効にします。

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

このタグ

     @{ Html.EnableClientValidation(false); }

の前に来なければなりません

  @using (Html.BeginForm())
6
marcelo

Html FORMを作成するために、_<form>__の代わりにhtml _Html.BeginForm_要素を使用していますか?.

私はこれとまったく同じ問題を抱えていましたが、私は_Html.BeginForm_を使用してフォームを作成していなかったため、必要な入力属性_data-val-required="The Email field is required." data-val="true" class="input-validation-error_が発生し、検証のプレースホルダーがビューページに@Html.ValidationMessageFor(m => m.User.Role)が挿入されていても、ページが表示されます。

4
Simon

私の場合、EditorForではなくTextBoxForを使用していました。

必ず使用してください:

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