我有一个页面:
@Html.Action("Index", "Product")
@Html.Action("Index", "Vendor")
这两个包含:
@section Head {
...
}
和(当然),我的布局文件包含:
<head>
...
@RenderSection("Head", required:false)
</head>
这个想法是每个有头脑的东西(比如javascript include,css等)都可以通过这个部分来实现。问题是每个页面只允许一个定义。这通常如何处理?
答案 0 :(得分:0)
我不建议在RenderAction的结果中使用Section,因为它通常用于View Pages而不是partials。
最好在您的托管布局页面中包含以下内容:
@section Head {
@Html.Action("foo")
@Html.Action("bar")
}
答案 1 :(得分:0)
我找不到一个很好的方法来做到这一点,所以我改为向我的基础ViewModel添加属性,这些属性将保存<head>
中需要的信息,然后有一个RenderPartial(“Head”) )在我的布局页面中。这样,事情的类型也会更加强烈,而不是只是将任何页面放入随机垃圾:
// Views/Shared/Head.cshtml
@model ViewModel
@foreach (var site in model.AuthorSites)
{
<link rel="me" type="text/html" href="@site" />
}