Ваша модель сложная (в ней есть другие модели).
У меня нет фактов, но кажется, что функция Json в MVC имеет проблемы с передачей сложных моделей в часть JQuery. Если вы проверите результат действия mvc (F9 на линии, где находится Json), вы увидите, что Json отображает сложную модель по частям, таким как: base, Model1, Mode2, ...
Когда это происходит, Json возвращает сопоставленный результат, но каким-то образом часть jQuery клинета не может его понять, ошибки нет, но данные не могут быть использованы на клиенте.
Я пытался найти решение, но пока не нашел. Я пробовал несколько таких комбинаций, как вы (.post, .get, .ajax ... JsonResult и т. Д. И т. Д.). К сожалению, похоже, что работает только один способ - вернуть (из действия) результат, созданный вручную Json, как этот:
[HttpPost]
public ActionResult GetOrderDetail(int id)
{
var orderDetail = orderService.GetOrderDetail(id);
var result = Json(new
{
ItemDescription = orderDetail.ItemDescription,
ItemUrl = orderDetail.ItemUrl
});
return result;
}
В этом случае моя модель OrderDetail содержит две другие модели: Order, OrderMessages и имеет ту же проблему, что вы описали. При сопоставлении свойства вручную со свойством, как показано здесь, оно работает.