0

以下是我的部分观点 - 使用下面的 ajax 调用完成对控制器的调用

$.ajax(url, {
            type: 'POST', 
            data: { Addresses: InboundAddresses },
            cache: false,
            crossDomain: true,
            success: function (data) {
                //Populate the form values
                // Start Dialog Code
                $myWindow = jQuery('#myDiv');
                //instantiate the dialog
                $myWindow.html(data);
                $myWindow.dialog({
                    title: 'Select an address',
                    modal: true,
                    width: 'auto'
                });
                $myWindow.show();
                $myWindow.dialog("open");
                // End Dialog Code

                $('#AddressTable').on('click', 'tr', function () {
//                    alert('You clicked row ' + ($(this).index()));
                    addAddress(InboundAddresses, Message, $(this).index())
                });
            },
            error: function (jqXHR, textStatus, errorThrown) {
                $('#Message').val('Kaboom!!! (The call blew up...#thatsucks)');
                alert('The Dialog Box call failed...Sorry :(');
            }
        });

我跟踪了代码,调用正在正确发送内容(在提琴手中验证)控制器中的接收方法确实有对象,但这些对象中的内容为空。我认为这是一个解析问题。

请参阅下面的方法代码。

public PartialViewResult ShowAddresses(List<Address> Addresses)
        {
            ShowAddressViewModel viewModel = new ShowAddressViewModel();
            viewModel.Addresses = Addresses;
            viewModel.Message = "NEW";
    return PartialView("_ShowAddress", viewModel);
}
4

1 回答 1

1

您传递的 json 对象上的每个属性都必须映射到 Adresss 类中的属性

IE

public class Address
{
   public string address { get; set; }
   public string city { get; set; }
   // etc...
}

在您的示例 json 数据中,您说您的地址 1、地址 2 不起作用,json 对象属性必须完全匹配。

于 2013-10-09T22:50:40.243 回答