[英]Get model count in ajax response returning Partial View
我正在通過ajax在Issues
控制器中調用一個名為Issues
的方法。
var url = "@(Url.Action("Issues", "Issues"))";
$.ajax({
type: 'POST',
url: url,
data: issue,
dataType: "html",
success: function (evt) {
$('#filteredDataList').html(evt);
},
});
在我的控制器中:
[System.Web.Mvc.HttpPost]
public ActionResult Issues(IssuesModel issue)
{
var model = allIssuesList.OrderBy(p => p.ID).ToList();
return PartialView("~/Views/Issues/_LoadMoreIssues.cshtml", model.Take(20));
}
我需要的是一種在ajax調用的成功響應中獲取模型計數的方法,因此我可以執行以下操作:
success: function (evt) {
$('#filteredDataList').html(evt);
var modelCount = ???
if (modelCount > (20)) {
$("#loadMore").show().fadeIn(2000);
}
},...
有什么可能的方法來實現這一目標?
您沒有將模型返回給ajax調用,而是要返回html。
您可以在html中包含所需的任何信息,然后從中讀取信息。
首先,添加一個視圖模型以包含您的其他信息:
public class MoreIssuesViewModel
{
public IList<Order> Orders { get;set; }
public int Total { get;set; }
}
從控制器使用此命令:
[System.Web.Mvc.HttpPost]
public ActionResult Issues(IssuesModel issue)
{
var data = allIssuesList.OrderBy(p => p.ID).ToList()
var model = new MoreIssuesViewModel
{
Orders = data.Take(20),
Total = Orders.Count()
}
return PartialView("~/Views/Issues/_LoadMoreIssues.cshtml", model);
}
然后在您的視圖中,將新信息存儲在某個地方(示例)
@model MoreIssuesViewModel
<table data-total='@Model.Total'>
<tbody>
@foreach(var order in Model.Orders) {
<td>....</td>
}
然后您可以從success
閱讀
success: function (evt) {
$('#filteredDataList').html(evt);
var modelCount = $('#filteredDataList table').data("total")
if (modelCount > (20)) {
$("#loadMore").show().fadeIn(2000);
}
},...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.