ASP.NET MVC3 と C# を使用しています。私はこのクラスを持っています:
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] public ActionResult JobTitle(JobTitle jobTitle, bool doUpdate = true)
ID プロパティと Title プロパティが入力され、データが取り込まれます。すべて問題ありません。ただし、MinimumRequirements ネストされたオブジェクトは null になります。
私もこれを試しました:
[HttpPut] public ActionResult JobTitle([Bind(Prefix = "MinimumRequirements")]JobTitle jobTitle, bool doUpdate = true)
(それもうまくいきませんでした)
VS デバッガーのスクリーンショットを次に示します。バインドがどのように見えるかがわかります。
ネストされたオブジェクトがバインドされていない理由は何ですか?