我正在與MVC asp.net 4和jquery。 這裏是我的問題: 我有以下型號:未能通過抽象列表屬性發送模型通過jquery ajax
public class PledgeModel
{
public string name { get; set; }
public IList<AbstractAsset> Assets { get; set; }
}
之一,如果它的屬性是對象的名單,他們每個人的繼承抽象類:
public abstract class AbstractAsset
{
public string commetns { get; set; }
}
public class RealEstateAsset:AbstractAsset
{
public int CityId { get; set; }
}
public class TransportationAsset : AbstractAsset
{
public string LicenseNumber { get; set; }
}
}
這裏是我的「獲取」動作代碼:
//init new Pledge
PledgeModel pledge=new PledgeModel();
pledge.name = "Moses";
pledge.Assets=new List<AbstractAsset>();
RealEstateAsset realEstateAsset = new RealEstateAsset();
TransportationAsset transportationAsset=new TransportationAsset();
realEstateAsset.CityId = 1;
transportationAsset.LicenseNumber = "7654321";
pledge.Assets.Add(realEstateAsset);
pledge.Assets.Add(transportationAsset);
ViewBag.Pledge = pledge;
當我得到承諾模型在JSON的觀點我越來越關注JSON:
{「name」:「摩西」,「資產」:[{「CityId」:1,「commetns」:null}, {「LicenseNumber」 「7654321」, 「commetns」:空}]};
如果我試圖發送整個模型和Ajax回調的資產清單:
var ajaxOptions = {
type: 'post',
url: 'Home/TryInsertPledge',
contentType: "application/json, charset=utf-8;",
dataType:'json',
data:JSON.stringify({pledge:pledge}),
success: function(data) {
alert('success');
},
error: function() {
alert('error');
}
};
$.ajax(ajaxOptions);
「後」動作:
[HttpPost]
public JsonResult TryInsertPledge(PledgeModel pledge)
{
return Json(new {sucess = "success"});
}
出於某種原因,我得到錯誤(如果您點擊鉻開發工具中的請求紅色錯誤)'無法創建抽象類'
但是,如果資產列表爲空 - 我得到了我的承諾
請幫
感謝
是您的jQuery ajax擊中控制器操作? –
如果我評論所有設置資產列表的全部內容-yes – happyZZR1400
爲您的表單提供一個id,然後在數據屬性數據中嘗試以下操作:$('#formname')。serialize(); –