从 ajax 更新 Html.RenderPartialAsync()
Update Html.RenderPartialAsync() from ajax
我在一个视图中有一个局部视图,我通过以下方式从我的父视图中加载它:
<div id="listOfEntities">
@{await Html.RenderPartialAsync("_PartialView", Model.GetEntities());}
</div>
如您所见,分部视图使用父视图中的模型来获取要在分部视图中使用的实体列表。
当用户与父视图交互时,部分视图显示一个列表,我想定期更新该列表。例如,我有以下 ajax post 方法,理想情况下应该在 ServiceResult 成功时更新我的局部视图,即:
$.ajax({
url: '/Controller/DeleteEntity',
type: 'POST',
data: { "SomeObject": object },
success: function (data) {
//DO SOMETHING HERE TO UPDATE THE PARTIAL VIEW
},
error: function (data) {
//Error from serviceResult - do not update view
}
});
由于我对 Ajax 方法相当缺乏经验,我不知道我这样做是否正确,因此我问这个问题的原因。
我什至可以更新局部视图吗,因为它使用父视图的模型?我是否必须创建一个单独的控制器来 returns 部分视图以及模型?
如果我在这里完全偏离轨道,我非常想知道我应该如何正确地实现这一点。
是的,你是对的。
只需要添加某个方法,它将 return GetEntities()。
public ActionResult _PartialView()
{
return PartialView(Model.GetEntities());
}
然后在ajax成功参数里放一个加载函数
$.ajax({
url: '/Controller/DeleteEntity',
type: 'POST',
data: { "SomeObject": object },
success: function (data) {
$('#listOfEntities').load('/<controller>/_PartialView');
},
error: function (data) {
console.log('something went wrong');
}
});
我在一个视图中有一个局部视图,我通过以下方式从我的父视图中加载它:
<div id="listOfEntities">
@{await Html.RenderPartialAsync("_PartialView", Model.GetEntities());}
</div>
如您所见,分部视图使用父视图中的模型来获取要在分部视图中使用的实体列表。
当用户与父视图交互时,部分视图显示一个列表,我想定期更新该列表。例如,我有以下 ajax post 方法,理想情况下应该在 ServiceResult 成功时更新我的局部视图,即:
$.ajax({
url: '/Controller/DeleteEntity',
type: 'POST',
data: { "SomeObject": object },
success: function (data) {
//DO SOMETHING HERE TO UPDATE THE PARTIAL VIEW
},
error: function (data) {
//Error from serviceResult - do not update view
}
});
由于我对 Ajax 方法相当缺乏经验,我不知道我这样做是否正确,因此我问这个问题的原因。
我什至可以更新局部视图吗,因为它使用父视图的模型?我是否必须创建一个单独的控制器来 returns 部分视图以及模型?
如果我在这里完全偏离轨道,我非常想知道我应该如何正确地实现这一点。
是的,你是对的。 只需要添加某个方法,它将 return GetEntities()。
public ActionResult _PartialView()
{
return PartialView(Model.GetEntities());
}
然后在ajax成功参数里放一个加载函数
$.ajax({
url: '/Controller/DeleteEntity',
type: 'POST',
data: { "SomeObject": object },
success: function (data) {
$('#listOfEntities').load('/<controller>/_PartialView');
},
error: function (data) {
console.log('something went wrong');
}
});