我正在尝试通过AJAX调用加载mvc webgrid。 我的视图中有一个AJAX函数,它调用控制器动作。 从控制器功能返回的数据填充在部分视图中的Webgrid中,并在我的索引视图中呈现。 如果我单击填充的网络网格的第二页,页面将重新加载,仅显示部分视图,而不会显示剩余页面。任何人都可以告诉我如何解决此问题。
这是我的代码:从索引视图查看我的AJAX调用
$.ajax(
{
url: "ControllerName/AjaxIndex",
type: "GET",
async: false,
contentType: "application/html; charset=utf-8",
datatype: 'html',
data: {
actionvalue: "CloseDefect"
},
success: function (data) {
$("#load-search").hide();
$("#gridContent").html(data);
$('.popupLink').click(function () {
$('#my-dialog').load(this.href, function () {
$(this).dialog('open');
});
return false;
});
$('#TempDataId').hide();
},
error: function (e) {
alert("Error");
alert(e.toString());
}
});
我的局部视图在索引视图中呈现为:
<div id="gridContent">
@{
Html.RenderPartial("_webgrid", Model);
}
控制器中的AjaxIndex方法:
var incidents = _repository.RetrieveCompanyIncidents(crmuser.Id, ParentCustomer);
if (incidents != null && incidents.Any())
{
for (i = 0; i < incidents.Count(); i++)
{
caseModel.Add(new CaseManagementModel
{
Title = incidents[i].Title,
TicketNumber = incidents[i].TicketNumber,
CaseSource = incidents[i].CaseSource,
CaseStatus = incidents[i].CaseStatus,
StatusReason = incidents[i].StatusReason,
CreatedOn = incidents[i].CreatedOn.ToString()
});
}
totalRecord = caseModel.Count();
totalPage = (totalRecord / pageSize) + ((totalRecord % pageSize) > 0 ? 1 : 0);
caseModel = caseModel.OrderBy(a => a.Title).Skip(((page - 1) * pageSize)).Take(pageSize).ToList();
}
else
{
}
}
string value = (string)Session["value"];
ViewBag.TotalRows = totalRecord;
ViewBag.PageSize = pageSize;
TempData["UserMessage"] = "Loading...";
return PartialView("_webgrid", caseModel);