Возврат нескольких объектов с помощью класса ASP.NET MVC JsonResult

Возможно ли использовать несколько объектов с использованием класса JsonResult ASP.NET MVC.... Вот метод контроллера, который возвращает объект json моих записей, но я также хочу передать значение счетчика....

var materials = consRepository.FindAllMaterials().AsQueryable();
var count = materials.Count();
var results = new PagedList<MaterialsObj>(materials, currentPage-1, pageSize);
return Json(results);

Как вернуть count вместе с results из контроллера asp.net mvc....


person ACP    schedule 04.05.2010    source источник


Ответы (3)


Как насчет создания анонимного типа и его JSON?

e.g.

var resultCount = results.Count;
var genericResult = new { Count = resultCount, Results = results };
return Json(genericResult);

Затем вы можете оценить свою строку json в своем скрипте, как и раньше, но просто запросите свойства Count и Results в вашем результате оценки.

person Neil Moss    schedule 04.05.2010
comment
Мое предположение заключалось в том, что вы сами вызывали функцию eval. Если вы сделали вызов jQuery, указав тип результата json, он уже сделал это. - person Neil Moss; 04.05.2010
comment
@Oscar, это верно для этого случая, но в случаях, когда данные, которые вы хотите получить, не являются простым свойством, вам нужно будет передать объект, как продемонстрировал Нил. - person Nick; 07.10.2015
comment
как читать Count и Results в свойстве ajax success? - person Jogi; 11.06.2016
comment
@RehanKhan, проверьте это, чтобы прочитать Count and Results в успехе ajax. Надежда помогает. - person Shaiju T; 26.01.2017

Существует способ отправки нескольких объектов, которые динамически идентифицируются для отправки. см. это.

person yashpal    schedule 29.02.2012
comment
Пожалуйста, вместо просто ссылки на блог включите здесь хотя бы краткое изложение ответа. При этом ваш ответ не станет недействительным, если блог когда-либо отключится. Это делает ваш ответ самодостаточным. Вы можете по-прежнему ссылаться на блог для получения дополнительной информации. - person Bart; 29.02.2012

В части С#:

Использование новой ключевой работы

var genericResult = new { homeworkData = homework, attachmentData = homeworkAttachment };
var result = this.Json(genericResult, JsonRequestBehavior.AllowGet);
return result;

На стороне jquery:

function getHomewrokDetailResponse(dataSent, result) {
if (result && result.homeworkData) {
    homeworkId = result.homeworkData.homeworkId;

    ....
}
 if (result && result.attachmentData) {
    xy = result.attachmentData.xyz;

    ....
}
person Rajdeep    schedule 01.02.2017