我的模型看起来像:
class Store
{
...
virtual ICollection<StoreItem> items;
...
}
商店视图显示商店属性以及包含商品和StoreItem属性的表格。 我希望在单击一个Item时,显示一个jQuery UI对话框来编辑Item模型。为此,我为StoreItem创建了Views动作,并在Dialog中嵌入了一个部分框架。
类似的东西:
<div id="modaldlg" title="Edit item?">
@using (Ajax.BeginForm(
new AjaxOptions
{
HttpMethod = "get",
InsertionMode = InsertionMode.Replace,
}))
{
@Html.Action("Edit", "StoreItem")
}
</div>
我的问题:
答案 0 :(得分:1)
虽然我无法更准确地解决方案因为我不确定父视图是如何构建的,但我在我的项目中做了类似的事情。我是这样做的:
$('.itemContainer').on('click', '#buttonId', function (event) {
event.preventDefault();
$("#PlaceholderDiv").dialog({
autoOpen: true,
width: 450,
height: 450,
resizable: false,
title: 'Edit Item',
modal: true,
open: function () { //Use the open handler to load data into the dialog.
$('#loadingAnimation').show();
$(this).load('/Controller/Action/' + itemId, function(){$('#loadingAnimation').hide();});
},
close: function () {
$.ajax({
type: "POST",
url: $('#formId').attr('action'),
data: $('#formId').serialize()})
.done(setTimeout(function() {RefreshPartial()}, (delayInms)));
},
buttons: {
Close: function () {
$(this).dialog("close");
}
}
});
return false;
});