作为第一个选项,我正在尝试创建一个强类型的局部视图。它会在我的内心呈现,_Layout.cshtml
因为这个想法是这个局部视图_UserInfoPartial.cshtml
将在所有其他视图中看到。
第二个是从父视图,例如从home/index
,渲染上述视图。
我该怎么做才能将另一个传递model
给女儿视图?
局部视图模型:
public class DatosUsuario
{
public short Compania { get; set; }
public Legajo LegajoUsuario { get; set; }
public Funcion Funcion { get; set; }
public string UsuarioNT { get; set; }
}
父视图模型:
public class Visita
{
public short Compania { get; set; }
public Local Local { get; set; }
public DateTime Fecha { get; set; }
public DateTime Periodo { get; set; }
public Legajo LegajoGerente { get; set; }
public Color Color { get; set; }
public DateTime FechaCierre { get; set; }
}
这是我的_Layout.cshtml
<body>
<div class="container body-content">
@RenderBody()
<hr />
@Html.Partial("_UserInfoPartial") @*aqui renderizo mi vista parcial*@
<footer>
<p>© @DateTime.Now.Year</p>
</footer>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
我不知道为什么要选择选项,但在我看来,这样做是最准确的,layout
因为它应该显示在所有视图中。
对于这种情况,最好使用子动作而不是仅使用局部视图
在控制器中,说Home:
(
[ChildActionOnly]
不强制调用,只是为了不作为正常动作直接调用)然后在
_Layout
:@Html.Action
在布局中写入调用指定操作的结果,您可以在其中指定要使用的视图和模型您还可以将局部视图的模型放在父视图的模型中,从而一次加载所有内容。如果您必须在所有视图中加载它,请创建一个所有模型都继承的基本模型。