在我的MVC 4应用程序中,删除操作后部分视图不刷新。我的部分观点如下Jquery删除后部分视图不刷新
@model IEnumerable<SFRS.DataMarketPlace.Data.Dataset_Files>
@using Microsoft.Web.Helpers;
@{ int datasetId = 0;}
@foreach (var item in Model)
{
datasetId = item.DatasetID;
<div class="FileLinkBox clearfix)">
<a class="FileLink FileLinkColor" href="@Href("/files")/dataset/@item.FilePath">@item.FilePath</a>
</div>
<div class="deleteFileLink"><a class="removeFile" href="#" data-id="@item.ID">(Delete File)</a> </div>
}
@FileUpload.GetHtml(initialNumberOfFiles: 1, allowMoreFilesToBeAdded: true, includeFormTag: false, addText: " Add more files")
<a href="#" onclick="removeFile(); return false;">Remove last file</a>
<script type="text/javascript">
$('.removeFile').click(function() {
var fileid = $(this).attr('data-id');
var answer = confirm ("Are you sure you want to delete this file?");
if (answer) {
$.ajax({
type: 'POST',
url: '@Url.Action("RemoveDatasetFile", "Dataset")',
data: { id: fileid, datasetId: @datasetId }
})
.success(function(result) {
})
.error(function(xhr, status) {
alert(status);
});
}
});
删除操作不工作,当我刷新页面我看到删除的文件。看看下面我怎么称呼从主力
<div class="col-sm-8">
@Html.Partial("_DatasetFiles", @Model.Dataset_Files)
</div>
负责处理此请求的方法,这部分的示意图如下
[HttpPost]
public virtual PartialViewResult RemoveDatasetFile(int id,int datasetId)
{
this.UnitOfWork.DatasetRepository.RemoveDatasetFileByDatasetIdAndId(id,datasetId);
this.UnitOfWork.SaveChanges();
var revisedDatasetFiles = this.UnitOfWork.DatasetRepository.GetDatasetFilesByDatasetId(datasetId);
return PartialView("_DatasetFiles", revisedDatasetFiles);
}
纠正我,如果我错了。你正在触发一个AJAX请求来删除文件并从那里返回一个刷新的视图。但是你没有在AJAX回调的Success方法中做任何事情。在这里,你应该编写代码,将返回的HTML返回给目标DIV。 – 2014-11-21 15:59:57
正如@KD所示,如果你没有返回任何关于ajax方法的成功回调,那么什么都不会发生。尝试在RemoveDatasetFile PartialViewResult中添加一个突破。如果操作成功,在成功回调中,您应该再次调用您的partialview(我认为RenderAction,而不是Partial,因为您可以处理其他操作,然后返回partialview) – 2014-11-21 16:05:32