MVC コントローラー メソッドを呼び出して、オブジェクトを渡していEntity
ます。他のプロパティの中でEntity
も、Contacts
プロパティがあります。このアプローチでは、コントローラーはエンティティと、エンティティ内の適切な数の連絡先を取得しますが、連絡先のプロパティはすべて null です。
これは元のアプローチです。
$.post('/Home/Save', $.param(entity), SaveComplete);
厳密に型指定されたコントローラーの場合:
public ActionResult Save(Entity entity)
これにより、それぞれEntity.Contact
に null プロパティが含まれます。
Fiddler は、連絡先がサーバーに渡されることを示しています。
エンティティの Contacts プロパティをコントローラーに認識させるには、次のようにする必要があります。
JavaScript:
$.post('/Home/Save', { entityAsJson: JSON.stringify(entity) }, SaveComplete);
コントローラーの方法:
public ActionResult Save(string entityAsJson)
{
try
{
Entity entity = JsonConvert.DeserializeObject<Entity>(entityAsJson);
// more code here
}
}
残念なことに、私のコントローラーは厳密に型指定されたエンティティではなく文字列を受け取るようになりました。最初のオプションを機能させる方法はありますか、または JSON を文字列化する必要がありますか?