Как я могу вернуть данные JSON из MVC? - PullRequest
1 голос
/ 13 июня 2011

В настоящее время я возвращаю данные в формате JSON следующим образом:

return new JsonResult {
Data = from service in _serviceTable.GetAll(
 u => u.PartitionKey == "1Z0-851" & 
 u.RowKey.CompareTo(lowerBound) >= 0 & 
 u.RowKey.CompareTo(upperBound) < 0)
       select new { 
 service.PartitionKey, 
 service.RowKey,
 service.TopicDescription,
 service.SubTopicDescription,
 service.Weight,
 service.Format,
 service.Style,
 service.ShortTitle }
};

Это хорошо работает, но теперь я хотел бы вернуть некоторые данные, чтобы указать статус. Я попытался добавить это как статус следующим образом:

 ShortTitle },
 Status = "abc"
    };

но я получаю сообщение об ошибке синтаксиса, говорящее "не содержит определения статуса

Может ли кто-нибудь объяснить, как я могу добавить статус и отправить его обратно на мою веб-страницу? Обратите внимание, что в serviceTable имеется много строк, но только один статус для отправки обратно.

Ответы [ 2 ]

3 голосов
/ 13 июня 2011

Вы можете сделать это и немного очиститься, используя пару промежуточных переменных (var легко обрабатывает анонимные типы):

var service = from service in _serviceTable.GetAll(
                u => u.PartitionKey == "1Z0-851" & 
                u.RowKey.CompareTo(lowerBound) >= 0 & 
                u.RowKey.CompareTo(upperBound) < 0)
              select new { 
                service.PartitionKey, 
                service.RowKey,
                service.TopicDescription,
                service.SubTopicDescription,
                service.Weight,
                service.Format,
                service.Style,
                service.ShortTitle });

var status = "abc";

var result = new {
  Service = service,
  Status = status
};

return Json(result);
1 голос
/ 13 июня 2011
return new JsonResult {
Data = new {Result=(from service in _serviceTable.GetAll(
 u => u.PartitionKey == "1Z0-851" & 
 u.RowKey.CompareTo(lowerBound) >= 0 & 
 u.RowKey.CompareTo(upperBound) < 0)
       select new { 
 service.PartitionKey, 
 service.RowKey,
 service.TopicDescription,
 service.SubTopicDescription,
 service.Weight,
 service.Format,
 service.Style,
 service.ShortTitle}), Status="abc"}


};

Пожалуйста, проверьте синтаксис, но вы поняли идею.Для доступа к данным вы должны будете использовать что-то вроде data.Result и data.Status для статуса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...