C# 如何在同一视图中使用多个渲染

C# 如何在同一视图中使用多个渲染,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我有一个这样的模型 public class Extended_Model { public IEnumerable<Model1> Models1 { get; set; } public IEnumerable<Model2> Models2{ get; set; } public IEnumerable<Model3> Models3 { get; set; } public IEn

我有一个这样的模型

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; }
    }
因此,他们向我展示了每个模型的创建视图

我想要的是填充模型的信息(隐藏它们的提交按钮),创建它们并创建关系

我怎么做?渲染是我需要的还是别的什么


谢谢

我会使用
EditorTemplates
进行此操作。这实际上是一个使用它们的完美场景

基本上,您可以这样设置它们:

\视图\Shared\EditorTemplates\Model1.cshtml

@model Model1
<!--Whatever HTML code you want to edit/create your Model1-->
@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" />
}
@模型扩展\u模型
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@EditorFor(m=>m.Models1)
@EditorFor(m=>m.Models2)
@EditorFor(m=>m.Models3)
@EditorFor(m=>m.Rel\u Model1\u Model2)
@EditorFor(m=>m.Rel\u Model1\u Model2)
}

您甚至不需要实现循环逻辑,因为按照惯例,MVC将为您提供循环逻辑。

几天前我使用了EditorTemplates,我遇到了一些不知道如何解决的异常。我会再次尝试使用它们。谢谢!!!;)如果在@model Model1中使用Antiforgerytoken,可能会出现问题?我读过它用来防止跨站点脚本的内容。我用表单/防伪代码更新了它。如果您的控制器正在验证防伪(应该是这样),则需要包含
@Html.AntiForgeryToken()
@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" />
}