ユーザーアカウントを作成するためのフォームを使用したMVC4インターネットアプリケーションがあります。フォームの検証は機能しますが、入力が検証に失敗している間はエラーメッセージは表示されません。使用されるモデルは、エンティティモデルで検証問題が解決されるまで、それはまだ提出防止するが、何のテキストクライアントの検証でメッセージが表示されない
レイザービューフォーム
<h2>Create New Account</h2>
<fieldset>
<legend></legend>
@using (Html.BeginForm("CreateUser",null)){
@Html.AntiForgeryToken()
<table class="create">
<tr>
<td colspan="2"><b>New Account</b>
</tr>
<tr>
<td>@Html.DisplayNameFor(model=>model.UserName)</td><td>@Html.TextBoxFor(model=>model.UserName)</td>
<td>@Html.DisplayNameFor(model=>model.EmailAddress)</td><td>@Html.TextBoxFor(model=>model.EmailAddress)</td>
<td><input type="submit" value="Create User" /></td>
</tr>
</table>
}
</fieldset>
@Html.ValidationSummary()
がありません使用バンドルは
bundles.Add(new ScriptBundle("~/bundles/asset").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.validate*",
"~/Scripts/jquery.unobtrusive*"));
検証ファイルを含めます、私は検証要件に注釈を付けるための部分クラスを追加しました。
[MetadataType(typeof(UserProfileMetadata))]
public partial class UserProfile
{
//Empty Class just required for adding class level attribute
}
public class UserProfileMetadata
{
//Fields from user profile requiring annotations
[EmailAddress]
[Required]
[Display(Name = "Email Address")]
public string EmailAddress { get; set; }
[Required]
public string UserName { get; set; }
}
妥当性検査は動作していますが、今メッセージを表示すると、マークアップエラーでなければならないと思いますが、私はそれを見ることができません。
は、フォームに検証要約を移動しようとしたがありますか?また、submitmentsがクリックされるまで、validationsummaryには結果が入力されません – Slicksim
* facepalm *はい、問題はフォームの外に要約があります。解決策としてそれを打ちなさい、私はそれを受け入れる。約40分それを見て、ちょうどそれを見ていない! – James
私は同じ自分をやった、私はいつも私の顔の手のひらから黒い目を取得します:) – Slicksim