我如何访问从MVC视图中的ajax调用所调用的控制器返回的数据

问题描述 投票:0回答:1

我有一个带有以下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对象的成员?

提前感谢。

javascript jquery asp.net-mvc asp.net-ajax
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.