Steven Sandersonのブログを参照し、リンクのクリックイベントにコントロールの動的挿入を実装しようとしました。今私の場合、それは機能していません。何が悪いのかわかりません。Div(コントロールを含む)の削除は正常に機能しています。しかし、追加コントロールが機能していません。[さらに追加]リンクをクリックすると、新しいページで開きます。同じページに追加のコントロールをレンダリングしません。
私のMainViewコード:
<div id="Div1">
<% Html.RenderAction("_EditServices", "CRM", new { id = Model.Id });%>
</div>
<div id="editorRows">
<% Html.RenderAction("_EditInsertServices", "CRM"); %>
</div>
<%= Html.ActionLink("+ Add More Service(s)", "EditAdd", null , new { id = "addItem" })%>
_EditInsertServicesの私のPartiaView:
<div class="editorRow">
<% using (Html.BeginCollectionItem("services"))
{ %>
NOS:<%:Html.DropDownListFor(model=>model.Id,(SelectList)ViewData["crmServiceType"] as SelectList,"---")%>
Comment:<%=Html.TextBoxFor(model => model.Comment, new { size = "20" })%>
<a class="deleteInsertRow">delete</a>
<% } %>
</div>
私のコントローラーコード:
public ActionResult EditAdd()
{
ViewData["crmServiceType"] = new SelectList(CRMRequestDL.GetCRM_Service_TypeList().ToArray(), "Id", "ServiceName");
return View("_EditInsertServices", new CommentedService());
}
public ActionResult _EditInsertServices()
{
ViewData["crmServiceType"] = new SelectList(CRMRequestDL.GetCRM_Service_TypeList().ToArray(), "Id", "ServiceName");
return PartialView();
}
脚本:
<script type="text/javascript">
$("#addItem").click(function () {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#editorRows").append(html); }
});
return false;
});
$("a.deleteInsertRow").live("click", function () {
$(this).parents("div.editorRow:first").remove();
return false;
});
</script>