以下是我的部分视图 - 使用下面的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 :(');
}
});
我跟踪了代码并且调用正确地发送了内容(在fiddler中验证) 控制器中的接收方法确实有对象,但这些对象中的内容为空。我认为这是一个解析问题。
请参阅以下方法的代码。
public PartialViewResult ShowAddresses(List<Address> Addresses)
{
ShowAddressViewModel viewModel = new ShowAddressViewModel();
viewModel.Addresses = Addresses;
viewModel.Message = "NEW";
return PartialView("_ShowAddress", viewModel);
}
答案 0 :(得分:1)
您传递的json对象上的每个属性都必须映射到Adresss类中的属性
即。
public class Address
{
public string address { get; set; }
public string city { get; set; }
// etc...
}
在您的示例json数据中,您说您有address1,address2无效,json对象属性必须完全匹配。