我正在使用asp.net mvc。我有這樣的動作:ajax中的空數據調用mvc動作
[HttpPost]
public ActionResult Create(MyData myData)
{
.... // For some reason data is always empty. The attributes are all null
}
MyData的是:
public class MyData {
public string prop1 {get;set;}
public IEnumerable<int> prop2 {get;set;}
}
我打電話這樣說:
var specificData = { prop1: 'abc', prop2: [1,2,3] }
$.ajax({
type: 'POST',
dataType: 'json',
url: '/MyController/Create',
data: { myData: specificData }, //data contains the same attributes as MyData class
success: function (data, b,c,d) {
alert("success!");
},
error: function (data, b, c, d) {
alert('fail');
}
});
的問題是創建行動中的 「數據」 變量實例化,但它的屬性都是空的。難道我做錯了什麼?
UPDATE
根據@Rory McCrossan我用data: specificData
代替data: { myData: specificData }
解決它。但現在我在不同的地方有這個問題。因爲我現在用更復雜的類相關MyData的類的序列化問題: 公共類Person { 公共字符串名稱{;設置;} }
public class MyData {
public string prop1 {get;set;}
public IEnumerable<Person> prop2 {get;set;}
}
和specificData是:
var specificData = { prop1: 'abc',
prop2: [
{name:'a'},
{name:'b'},
{name:'c'}]
};
在該操作中,myData.prop2.ElementAt(0).name爲null。 現在有什麼錯?
你可以發佈你的'data'變量的內容。此外,你的'MyData'類的屬性列表將有所幫助。 –
我覺得問題是使用可變數據,你可以請更改它 – Elby
@Rory McCrossan:我更新了我的代碼。 – Naor