部分ビューに対してクライアント側の検証を有効にしようとしてきましたが、行き詰まってしまいました。コードを AjaxOptions OnSuccess プロパティに追加しましたが、何も起こりません。私は比較的 jQuery に慣れていないことを指摘しておく必要があります。正直に言うと、最初の MVC アプリケーションを学習しながら、自分の道を歩もうとしているところです。誰かがこれを行うより良い方法を持っている場合は、私に知らせてください。
どんな助けでも大歓迎です。
私のビューのコードは次のとおりです。
@model NorthwindLight.Models.Order
@using NorthwindLight.HtmlHelpers
@using NorthwindLight.Models
@{
ViewBag.Title ="Create";
AjaxOptions newOpts = new AjaxOptions();
newOpts.UpdateTargetId ="tabledata";
newOpts.InsertionMode =InsertionMode.InsertAfter;
newOpts.OnSuccess ="function (tabledata) {$.validator.unobtrusive.parse($(tabledata));};";
}
<h2>Create</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm("Create", "Order", FormMethod.Post, new { name = "mainform", id = "mainform" })) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Order</legend>
... Code for entering Order ommitted for brevity
<legend>Order Details</legend>
<br />
<table>
<thead>
<tr>
<th>Product</th>
<th>Unit Price</th>
<th>Quantity</th>
<th></th>
</tr>
</thead>
<tbody id="tabledata">
@if (Model.OrderDetails == null)
{
@Html.Partial("OrderDetailPartial", new OrderDetail())
}
else
{
foreach (var orderDetail in Model.OrderDetails)
{
@Html.Partial("OrderDetailPartial", orderDetail)
}
}
</tbody>
</table>
@Ajax.ActionLink("New Record", "OrderDetailPartial", newOpts)
</fieldset>
}
<div>
<a href="javascript:document.mainform.submit();">Create</a> |
@Html.ActionLink("Cancel", "Index")
</div>
_Layout.cshtml に含まれるスクリプト タグは次のとおりです。
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/DeleteRow.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/ui.core.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/ui.datepicker.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
これに似たような例をネット上でたくさん見てきましたが、どれも動作させることができませんでした。