私はMVCasp.net4とjqueryを使用しています。これが私の問題です:私は次のモデルを持っています:
public class PledgeModel
{
public string name { get; set; }
public IList<AbstractAsset> Assets { get; set; }
}
1つは、そのプロパティがオブジェクトのリストであり、それぞれが抽象クラスを継承している場合です。
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; }
}
}
これが私の「Get」アクションコードです。
//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": "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開発者ツールでリクエストの赤いエラーをクリックした場合)'抽象クラスを作成できません'
しかし、資産リストが空の場合-私は私の誓約を正しく取得しました
助けてください
ありがとう