将您的链接更新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 调用 ActionActionNameToGetAddressInfo
并将其结果放入div
with 中id="ModalEditAddress"
。发生这种情况时,它将在局部视图的最底部运行脚本并显示模式。
您将不得不编写另一个动作来保存地址和一些 JQuery 来在保存时隐藏模式。
这都是伪代码,因此可能需要对其进行一些调整才能正常工作。