在我的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