我有一个带有以下JavaScript的MVC 5视图,该视图在控制器上调用操作方法后出现错误:
<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对象的成员?
提前感谢。