我正在使用 MVC asp.net 4 和 jquery。这是我的问题:我有以下模型:
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;
当我在 View 上的 Json 中获得质押模型时,我得到以下 json:
{"name":"Moses","Assets":[{"CityId":1,"commetns":null}, {"LicenseNumber":"7654321","commetns":null}]};
如果我试图在 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"});
}
出于某种原因,我收到错误(如果您在 chrome 开发人员工具中单击请求的红色错误)“无法创建抽象类”
但是如果资产清单是空的——我的承诺是正确的
请帮忙
谢谢