我有这样的模型
public class Extended_Model
{
public IEnumerable<Model1> Models1 { get; set; }
public IEnumerable<Model2> Models2{ get; set; }
public IEnumerable<Model3> Models3 { get; set; }
public IEnumerable<Model1_Model2> Rel_Model1_Model2 { get; set; }
public IEnumerable<Model1_Model3> Rel_Model1_Model2 { get; set; }
}
我想问你Html.RenderAction是如何工作的。我有一个带有3个RenderActions的Extended_Model的Create视图:
@Html.RenderAction("Create", "Model1");
@Html.RenderAction("Create", "Model2");
@Html.RenderAction("Create", "Model3");
因此,他们向我展示了每个模型的创建视图。
我想要的是填写模型的信息(隐藏他们的提交按钮),创建它们并创建关系。
我该怎么办? RenderAction是我需要的还是其他什么?
感谢!!!
答案 0 :(得分:0)
我会使用EditorTemplates
。这实际上是使用它们的完美场景。
基本上,你可以这样设置它们:
\视图\共享\ EditorTemplates \ Model1.cshtml
@model Model1
<!--Whatever HTML code you want to edit/create your Model1-->
并重复其他型号。然后在父视图中,您可以轻松地将它们渲染出来:
@model Extended_Model
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.EditorFor(m => m.Models1)
@Html.EditorFor(m => m.Models2)
@Html.EditorFor(m => m.Models3)
@Html.EditorFor(m => m.Rel_Model1_Model2)
@Html.EditorFor(m => m.Rel_Model1_Model2)
<input type="submit" value="Save" />
}
您甚至不需要实现循环逻辑,因为按惯例,MVC将为您loop over your IEnumerables。