Я хочу передать сложный объект из метода контроллера обратно на мой вызов Ajax. Насколько я знаю из нескольких исследований, JSON - это выбор.Обработка данных JSON в Ajax Sucess Handler
Вот мой контроллер метод:
public JsonResult GetUserByData(string fn, string ln, string dep, string cc, string tel, string mail) {
IList<Models.Person> userCollection = Models.Person.GetPersonsByData(fn, ln, dep, tel, cc, mail).ToList();
if (userCollection.Count > 1) {
return Json(new { Complex= true, HTML = PartialView("SomeView.cshtml", userCollection) });
}
else {
return Json(new { Complex = false, HTML = PartialView("SomeOtherView.cshtml", userCollection.First()) });
}
Вот мой Ajax вызов:
$.ajax({
url: 'Home/GetUserByData',
type: 'POST',
dataType: 'html',
data: {
fn: firstname,
ln: lastname,
dep: department,
cc: costcenter,
tel: telephone,
mail: mail
},
success: function (data) {
if (data.Complex)
$('#Customer_Person').html(data.HTML);
else
$('#Notification_Area').html(data.HTML);
}
});
Назад в моем сценарии, кажется, что свойства «Комплекс» и «HTML» не может быть доступен - Что я делаю неправильно? Является ли это лучшим подходом к передаче сложных объектов или есть ли другие способы сделать это?
Вы проверили, какой ответ действительно возвращен в средствах браузера 'developer'? – Pawan
Возможный дубликат [MVC Return Partial View as JSON] (http://stackoverflow.com/questions/4730777/mvc-return-partial-view-as-json) –