RenderPartial タグを含むビューがあります。部分ビュー内にフォームがありますが、サーバー要求の前にクライアント側のフォーム検証が起動しません。サーバー側の検証は正常に機能しています。私は他のビューを持っていますが、完全に機能するRenderPartialsがないので奇妙です。RenderParial を含めると、検証が機能しなくなるようです。
ところで - 私は両方の webconfig 設定を true に設定しました:
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
また、[必須] 属性を含むようにモデルが更新されました。ここにスナップショットがあります:
[Required]
[CreditCard]
public string CardNumber { get; set; }
[Required]
[Display(Name = "Name on card")]
public string CardHolder { get; set; }
[Required]
public string Address { get; set; }
親スニペットは次のとおりです。
@if (ViewBag.tabvalue.Equals("billing"))
{
<div>
<p>
@{Html.RenderPartial("_BillingInfo");}
</p>
</div>
}
これが子の部分ビューです (コピーの量を減らすためにいくつかのフィールドを削除しました):
@model MVC4.Models.ClientCreditCard
@using (Html.BeginForm("CreditCard", "Client", FormMethod.Post, new { }))
{
@Html.AntiForgeryToken()
<fieldset style="color:white">
<legend></legend>
<div style="color:white;clear:left">@Html.ValidationSummary(true)</div>
<div class="editor-label">
@Html.LabelFor(model => model.CardNumber)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.CardNumber)
@Html.ValidationMessageFor(model => model.CardNumber)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.CardHolder)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.CardHolder)
@Html.ValidationMessageFor(model => model.CardHolder)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Address)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Address)
@Html.ValidationMessageFor(model => model.Address)
</div>
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
}
事前に助けてくれてありがとう!