次のように、独自のフォームタグを格納する部分ビューを設定しました。
<tr>
@using (Html.BeginForm("Create"))
{
<td>
@Html.TextBoxFor(model => model.Date)
@Html.ValidationMessageFor(model => model.Date)
</td>
<td>
@Html.TextBoxFor(model => model.Amount)
@Html.ValidationMessageFor(model => model.Amount)
</td>
<td>
@Html.TextBoxFor(model => model.Tags)
@Html.ValidationMessageFor(model => model.Tags)
</td>
<td>
@Html.EnumDropDownListFor(model => model.Type)
</td>
<td>
<input type="submit" value="Add" />
@Html.ValidationSummary(true)
</td>
}
</tr>
@ Html.Action( "Create")を使用してページにレンダリングします(これはテーブルの一部であるため、<tr>タグです。
奇妙な理由で、クライアント側の検証が機能せず、投稿時に最初にエラーが表示されます。
部分ビューとクライアント側の検証について何か特別なことはありますか?
次のスクリプトを含めました。
<script src="/Scripts/jquery.1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
編集
このスクリプトをページに投げてみました:
jQuery('form').submit(function ()
{
alert(jQuery(this).valid());
});
「true」と警告するので、クライアント側の検証スクリプトは間違いなくそこにあり、何らかの理由で問題のフィールドをチェックしていません:-/
編集2
ページのソースコード全体(HTML + JS)をpastebinにアップロードしました:http://pastebin.com/GvqLW495