次のコード行を使用して、クライアント側の検証を追加しようとしています。
@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.EnableClientValidation(false); }
の前に来なければなりません
@using (Html.BeginForm())
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)
が挿入されていても、ページが表示されます。
私の場合、EditorForではなくTextBoxForを使用していました。
必ず使用してください:
<td>@Html.EditorFor(m => m.Email)</td>