0

ユーザーが動的に作成された一連のチェックボックスを選択できるようにするモーダルを呼び出し、渡された FormCollection からのすべての情報を保存するコントローラーにフォームを送信し、モーダルを呼び出すページに RedirectToAction を実行します。

フォーム内のものを引き続き保存できるようにしたいのですが、モーダルを呼び出すページにリダイレクトする代わりに、モーダルのままにしたいです。

モーダル

<script type="text/javascript">
// Close Modal when done.
function CloseModal() {
    $("#SkillModalWindow").modal("hide");
}
</script>

@using (Ajax.BeginForm("Save", "SkillGroup", null, new AjaxOptions
{
    HttpMethod = "Post",
    OnSuccess = "CloseModal"
},
new { id = "CreateSkillGroups" }))
{
@Html.ValidationSummary(true)
@Html.Hidden("JobRoleId", (int)ViewBag.JobRoleID)

<div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Add New Skills to Job Role</h3>
</div>
<div class="modal-body" id="CreateModal">@Html.Partial("_Create")</div>
<div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button type="submit" class="btn btn-primary">Save</button>
</div>
}

コントローラーのアクション

[HttpPost]
public ActionResult Save(FormCollection formCollection)
{

foreach (var key in formCollection.AllKeys)
{
    do stuff.....

}
return RedirectToAction("Index");

}
4

1 に答える 1

0

リダイレクトする代わりに、モーダル マークアップを含む部分ビューを返すことができます。

[HttpPost]
public ActionResult Save(FormCollection formCollection)
{

    foreach (var key in formCollection.AllKeys)
    {
        do stuff.....

    }
    return PartialView("_Modal");
}

また、ヘルパーを機能さjquery.unobtrusive-ajax.jsせたい場合は、メイン ビューにスクリプトが含まれていることを確認してください。Ajax.BeginForm

于 2013-04-12T08:01:42.513 に答える