私は以前にこの問題を抱えていましたが、良い方法で解決したことはありません。
これは私のJSONオブジェクトです:
{ Targets: [{ Target: { Id: -1, EditUrl: editUrl}}] }
これらは私が使用するモデルです:
public class TargetList
{
public List<Target> Targets { get; set; }
}
public class Target
{
public int Id { get; set; }
public string EditUrl { get; set; }
}
これはアクションです:
[HttpPost]
public PartialViewResult GetSpecifics(TargetList targetList)
{
//Code and stuff
}
TargetListは常にnullであることがわかります。OOTBで動作するはずなのに、このようなリストを使用することはできませんでした(右?)。プロパティのみでリストがない「通常の」データモデルは完全に機能します。
私はここでいくつかの関連するQを見ました、そしてそれらのいくつかはにあることを提案しtraditional: true
ました$.post
。動作しません。私はデータを文字列化しましたが、無駄にしました。Traditionalがtrueに設定されているときに文字列化されていない場合、jsonオブジェクトはちょうどなるTargets: [Object object]
ので、投稿と関係があると思います。
どういうわけか手動でオブジェクトをバインドできますか?特定の状況でファクトリをオーバーライドしますか?この機能をもっとコントロールする必要があるように感じます。
MVC3、.NET4、jQuery-1.7.2を使用しています。
私は本当に、本当にどんな助けにも感謝します。