我正在使用 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; }
}
它本身包含成分模型。
当我为此创建一个表单时,内置对 .Html.EditorFor()
属性之外的任何内容都不起作用Recipe_model
,因此我使用局部视图来显示每个子模型的编辑器。
就界面而言,这很好用,但是当我将表单提交到控制器并尝试绑定到Recipe_model
自动使用时
[HttpPost]
public ActionResult Edit(Recipe_model model)
{
return View(model);
}
它失败是因为部分视图中输入元素的 id 不符合正确的模式(我认为 ParentModel_Property)。
除了在局部视图中硬编码 id 或从FormCollection
控制器中手动绑定之外,是否有某种方法可以在局部视图中生成正确的 id,以便模型在提交时自动绑定?