MVC @ Html.Action()渲染_Layout后的部分视图?

时间:2013-11-25 00:10:05

标签: c# asp.net-mvc asp.net-mvc-3

在我的MVC3解决方案中,我试图在this answer中实现解决方案,以在局部视图中动态地向_Layout.cshtml文件添加CSS引用。

以下是我的_Layout文件的片段:

<!DOCTYPE html>
<html>
<head>

@Html.RenderStyles()

</head>

<body>
    <div id="header-wrapper">
        @Html.Action("Header", "Shared")
    </div>

    <div class="container">
        @RenderBody()
    </div>

    @RenderSection("scripts", required: false)
</body>

</html>

并在局部视图中(由@ Html.Action(“Header”,“Shared”)位渲染):

@{
    Html.AddStyle(Model.Company.CSSPath);
}

虽然HtmlExtension方法按预期工作,但似乎事件发生的顺序不正确。

在部分视图有时间将CSS文件添加到样式之前,_Layout头中的@ Html.RenderStyles()正在出现。我的印象是部分视图在_Layout之前呈现。

我猜测原因与我使用Html.Action调用渲染我的部分视图这一事实有关。但是,如果我不这样做,那么如何使用所需的模型填充“部分”视图?


Per Matt Razza的评论,如果我使用以下方式渲染局部视图“正常方式”:     @ Html.Partial(“ViewName”,型号) 然后我需要给我的_Layout一个模型,然后强制所有其他模型继承该模型?这真的是最好的选择吗?

0 个答案:

没有答案