Как редактировать JSON данных времени выполнения? - PullRequest
1 голос
/ 04 февраля 2011

Я хочу добавить данные в существующие сгенерированные данные json в моем приложении asp.net mvc, что мне делать? значит, предположим, у меня есть класс Company, у которого есть список Департаментов как собственность. но сериализация json не способна поддерживать такие циклические ссылки. поэтому я подумал, что если я сначала получу сериализацию объекта Company без списка отделов, то получу отделы для каждой компании, а затем сериализую этот список и добавлю данные в сериализованные данные компании. я знаю, что это может быть неправильно. но я должен сделать из-за ультиматума времени. пожалуйста, руководство.

1 Ответ

1 голос
/ 04 февраля 2011

Вы можете определить модель представления, в которой у вас не будет циклических ссылок:

public class DepartmentViewModel
{
    public string DepartmentName { get; set; }
}

public class CompanyViewModel
{
    public IEnumerable<DepartmentViewModel> Departments { get; set; }
}

, а затем вы отобразите между вашей моделью и моделью представления (вы можете использовать AutoMapper для этого) и, наконец, верните модель представления в представление.

Например:

public ActionResult Index()
{
    var companies = _repository.GetCompanies();
    var companiesVM = Mapper.Map<IEnumerable<Company>, IEnumerable<CompanyViewModel>>(companies);
    return Json(companiesVM, JsonRequestBehavior.AllowGet);
}

Теперь у вас больше не будет циклических ссылок, и вы сможете успешно сериализовать модель представленияв JSON, и вы только передадите информацию, необходимую для представления.

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