我有一个asp.net mvc应用程序。我需要用ajax帖子重新加载部分。这是我在主视图中的cshtml代码:
<button data-url='@Url.Action("GetErrors", "Interface", new { servers = "S97EGESRV01" })'
class="js-reload-details">
Reload
</button>
<div id="errorListDiv">
@Html.Partial("~/Views/Partials/_ErrorListPartial.cshtml", Model.Errors)
</div>
的javascript:
$('.js-reload-details').on('click', function (evt) {
evt.preventDefault();
evt.stopPropagation();
var errorListDiv = $('#errorListDiv');
var url = $(this).data("Interface/GetErrors?servers=S97EGESRV01");
$.get(url, function (data) {
errorListDiv.replaceWith(data);
});
});
C#:
public ActionResult HatalariGetir(string servers= "All", InterfaceViewModel interfaceModel = null)
{
if (interfaceModel == null) {
interfaceModel = new InterfaceViewModel();
}
// Some database processes
List<ErrorViewModel> modelList = new List<ErrorViewModel>();
// Populating modelList
interfaceModel.Errors = modelList;
return View("~/Views/Partials/_ErrorListPartial.cshtml", interfaceModel.Errors);
}
但事情是当我点击&#34;重新加载&#34;按钮,整个页面加载在errorListDiv中。不只是部分视图。我做错了什么?
编辑: 我试过这个:
return PartialView("~/Views/Partials/_ErrorListPartial.cshtml", interfaceModel.Errors);
不幸的是结果是一样的。
答案 0 :(得分:2)
尝试将此添加到您的视图文件中。
@{
Layout = null;
}
答案 1 :(得分:1)
实际上您的部分视图效果不像部分视图,它使用主布局呈现为完整视图,因此您需要明确告诉视图通过在视图顶部添加此行,不要使用任何主布局:
@{
Layout = null;
}