Edit
クリックしたときにモーダルの表示がトリガーされないように、リンクを次のように更新します。
<a class="btn btn-small open-EditAddress" data-id="#custom.addr_id#" href="/ControllerName/ActionNameToGetAddressInfo/[locationId]" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#ModalEditAddress"><i class="icon-pencil"></i> Edit</a>
フォームをロードした後、JQuery を介して個別にトリガーするため、これを行いたくありません。また、これらすべての追加のデータ属性にも注意してください。これらは、ajax 呼び出しを有効にして、モーダル div に必要な情報を入力します。
ページのどこかにモーダル要素が必要です:
<div id="ModalEditAddress" class="modal hide fade">
</div>
次のアクションへの ajax 呼び出しが取り込まれるため、空です。
public ActionResult ActionNameToGetAddressInfo(int id) // locationId
{
var model = [get all the address information from DB or however you get it];
return View("~/Views/[ControllerName]/_EditAddress.cshtml", model);
}
ここにあなたの部分的なビューがあります_EditAddress.cshtml
:
@using(Ajax.BeginForm("[ActionNameToSaveAddress]","[ControllerName]", new AjaxOptions{...}))
{
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Edit Address</h3>
</div>
<div class="modal-body">
[all the form related inputs]
</div>
<div class="modal-footer">
<input type="submit" value="Save Address" />
</div>
}
<script type="text/javascript">
$('#ModalEditAddress').modal('show');
</script>
これまでのところ、編集リンクをクリックすると、Ajax 呼び出しアクションがトリガーされ、その結果がwithActionNameToGetAddressInfo
に入れられます。これが発生すると、部分ビューの一番下でスクリプトが実行され、モーダルが表示されます。div
id="ModalEditAddress"
アドレスを保存する別のアクションと、保存時にモーダルを非表示にする JQuery を作成する必要があります。
これはすべて疑似コードであるため、動作させるには何らかの調整が必要になる場合があります。