Есть несколько способов сделать это. Один из способов - добавить атрибут данных к элементу ul
, который вы визуализируете из частичного представления, и сохранить в нем количество элементов. Вы можете использовать метод IEnumerable.Count()
.
@model YourNamespace.GigsViewModel
<ul data-itemcount="@Model.UpcomingGigs.Count()">
@foreach (var item in Model.UpcomingGigs)
{
<li>@item.Title</li>
}
</ul>
Теперь в вашем успешном событии ajax проанализируйте ответ, полученный от сервера, используя $.parseHTML
, а затем прочитайте значение атрибута данных
success: function (data) {
var html =$.parseHTML(data);
var itemCount = $(html).data("itemcount");
alert(itemCount);
}
Другой вариант - использовать метод find
, чтобы получить массив элементов списка и получить его длину.
success: function(data) {
var html = $.parseHTML(data);
var itemCount = $(html).find("li").length;
alert(itemCount);
}
Я бы выбрал первый подход, так как мне не нравится, что мой браузер делает так много работы. (Здесь нужно пройти через элементы dom, чтобы получить счетчик)