我正在使用ASP.NET MVC3和C#。我有這個類:如何建模綁定JSON到嵌套對象
public class JobTitle
{
public int ID { get; set; }
public string Title { get; set; }
public MinimumRequirements MinimumRequirements;
public JobTitle(DataRow row)
{
ID = Utilities.SafeInt(row["JobTitle_ID"]);
Title = Utilities.SafeString(row["Job_Title"]);
MinimumRequirements = new MinimumRequirements()
{
Certifications = Utilities.SafeInt(row["....."]),
ID = Utilities.SafeInt(row["....."]),
Languages = Utilities.SafeString(row["....."]),
MinimumEducation = Utilities.SafeString(row["....."]),
MinimumGrade = Utilities.SafeString(row["....."]),
MinimumYOS = Utilities.SafeInt(row["....."])
};
}
}
而發送的JSON看起來是這樣的:
{
"ID": 401,
"Title": "MinReq",
"MinimumRequirements": {
"ID": 0,
"MinimumEducation": "Bachelors",
"MinimumGrade": "93",
"MinimumYOS": 10,
"Certifications": 1,
"Languages": "English"
}}
這裏是我的C#控制器方法的簽名: [HttpPut] 公衆的ActionResult JOBTITLE(JOBTITLE JOBTITLE,布爾doUpdate = true)
ID和標題屬性進來並填充數據,一切正常。但MinimumRequirements嵌套對象爲空。
我也試過這樣:
[HttpPut] 公衆的ActionResult JOBTITLE([綁定(PREFIX = 「MinimumRequirements」)JOBTITLE JOBTITLE,布爾doUpdate =真)
(即沒有任何工作)
下面是來自VS調試器的截圖,讓你知道如何結合外觀:
任何想法爲什麼嵌套對象不具有約束力?
噢,麻煩我!你是對的,那是固定的。我其實並不是故意要成爲一個領域,這只是一個粗心的錯誤。謝謝!!! – HerrimanCoder 2012-08-14 18:21:19
只需在註釋中註明「您的JobTitle模型沒有無參數構造函數」....除了添加「get; set;」之外,我不必改變任何其他內容。使其成爲一個財產。它做了100%的工作。 – HerrimanCoder 2012-08-14 18:22:45
糟糕,我實際上* DO *有一個無參數的構造函數,它可能是必需的。我只是沒有在文章中包含它。抱歉。謝謝。我受夠了。 – HerrimanCoder 2012-08-14 18:24:14