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" />
}