私は ASP.NET MVC 4 を使用していますが、この質問の目的には問題ないと思います。
私の編集ビューには比較的複雑なモデルがあります。このような:
public class Recipe_model
{
public string Name { get; set; }
public List<Recipe_Ingredient_model> Ingredients { get; set; }
}
成分はどこにありますか
public class Recipe_Ingredient_model
{
public int RecipeID { get; set; }
public int? UnitID { get; set; }
public double? Quantity { get; set; }
public Ingredient_model Ingredient { get; set; }
}
それ自体に Ingredient モデルが含まれています。
このためのフォームを作成すると、ビルトインHtml.EditorFor()
は のプロパティを超えて機能しないため、Recipe_model
部分ビューを使用して各サブモデルのエディターを表示しています。
インターフェイスに関する限り、それは正常に機能しますが、フォームをコントローラーに送信し、Recipe_model
自動的に使用してバインドしようとすると
[HttpPost]
public ActionResult Edit(Recipe_model model)
{
return View(model);
}
部分ビューの入力要素の ID が正しいパターン (ParentModel_Property だと思います) に準拠していないため、失敗します。
部分ビューで id をハードコーディングするか、コントローラーから手動でバインドすることから短く、FormCollection
送信時にモデルが自動的にバインドされるように、部分ビューで生成された正しい id を取得する方法はありますか?