2010-05-04 2 views
3

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

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

Как вернуть счетчик вместе с results из aSP.NET MVC контроллер ....

ответ

16

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

например.

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

Вы можете Eval вашей строки JSON в сценарии, как и раньше, но только запрос графа и результаты свойств на вашем результате Eval.

+1

Мое предположение вы вызов функции Eval самостоятельно. Если вы выполнили вызов jQuery с указанием типа результата json, он уже это сделал. –

+0

Я просто использовал 'data.Count', он дал мне результат ... –

+0

@ Оскар, который является истинным для этого случая, но в тех случаях, когда данные, которые вы хотите получить, не являются простыми свойствами, вам нужно будет пройти объект, подобный Нилу. –

0

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

+1

Пожалуйста, вместо [только ссылки на блог] (http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers) включают, по крайней мере, резюме ответа здесь. Делая это, ваш ответ не станет недействительным, если блог когда-либо будет отключен. Это делает ваш ответ хорошо самодостаточным. Вы можете по-прежнему ссылаться на блог для получения дополнительной информации. – Bart

0

В C# часть:

Использование нового keywork

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; 

    .... 
} 
Смежные вопросы