У меня есть представление MVC 5 со следующим JavaScript, который получает ошибку после вызова метода действия на контроллере:
<script type="text/javascript">
$('#ddlvendors').change(function () {
var descHtml = "";
var vendorId = $(this).val();
$.ajax(
{
type: "POST",
data: { vendorId: vendorId },
url: '@Url.Action("PurchaseOrderVendor")',
datatype: "json",
success: function (aVendorObject) {
alert(aVendorObject.Name);
},
error: function (req, status, error) {
alert(error);
}
});
});
</script>
Метод действия контроллера следующий:
[HttpPost]
public ActionResult PurchaseOrderVendor( int vendorId)
{
Vendor aVendor=VendorServices.GetVendor(vendorId);
return Json(aVendor);
}
Возвращаемый объект поставщика выглядит следующим образом:
public class VendorViewModel
{
public int VendorId { get; set; }
public string Name { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string ZipCode { get; set; }
public string Description { get; set; }
public string ContactName { get; set; }
public string Phone { get; set; }
}
С помощью отладчика Visual Studio 2017 я вижу, что данные поставщика правильно заполняются на стороне контроллера. Если я не пытаюсь получить доступ к каким-либо данным о членах, вызов ajax завершается без ошибок. Тем не менее, когда я пытаюсь получить доступ к любой части, поступающей как aVendorObject, такой как aVendorObject.Name, я получаю сообщение об ошибке браузера, говорящее «Внутренняя ошибка сервера». Как я могу исправить свой обработчик успеха в вызове ajax, чтобы я мог получить доступ к членам объекта Vendor, возвращаемым из контроллера?
Заранее спасибо.