【发布时间】:2013-05-22 08:03:02
【问题描述】:
我有一个包含局部视图的 MVC 4 视图。部分视图包含在主视图中如下:
<div id="PartialView">
@Html.Partial("_PhotoList", @Model)
</div>
我的局部视图如下:
@model ExchangeSite.Entities.EstateSaleSellerListing
<div style="width: 1300px; height: 300px; overflow: auto">
@foreach (var photo in @Model.ImageList)
{
<a href="javascript:DeletePhoto(@photo.ImageId);">
<img src="@Url.Action("GetPhoto", new { id = photo.ImageId })" alt="" title="Click on the image to remove it" width="250" height="190"/>
</a>
}
</div>
<script>
function DeletePhoto(imageId) {
var Url = "/EstateSaleSellerListing/DeletePhoto";
$.get(Url, { imageId: imageId }, function (data) {
$("#PartialView").html(data);
});
}
</script>
如您所见,当用户单击图像时,会调用 DeletePhoto() 方法。它调用命名控制器上名为 DeletePhoto 的操作方法。 action 方法删除照片,生成新的照片列表并更新局部视图。一切正常,除了部分视图永远不会更新。
我的控制器代码如下:
public ActionResult DeletePhoto(int imageId)
{
var photo = this._systemLogic.GetItem<Photo>(row => row.ImageId == imageId);
this._systemLogic.DeleteItem(photo);
EstateSaleSellerListing listing = new EstateSaleSellerListing();
GetPhotoList(listing);
return PartialView(listing);
}
EstateSaleSellerListing 实体具有显示在局部视图中的照片对象列表。
我没有足够的经验知道为什么我的局部视图在操作方法返回时没有更新。
【问题讨论】:
-
您正在尝试更新主视图的 div。在局部视图中,为您的 div 命名并在 js 中更新它。我希望它有所帮助。