为所有视图定义一个部分

时间:2011-06-17 22:01:02

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

我在asp.net MVC 3 Web应用程序中为页脚创建了一个部分:

<footer>
    @RenderSection("Footer", true)
</footer>

这个页脚在每个页面上都是相同的,所以我为每个视图定义它都没有意义。那么,有什么方法可以全局声明所有视图的页脚部分?页脚将包含代码,因此据我所知,如果不是不可能的话,直接在.cshtml文件中定义它是不好的做法。

提前谢谢。

3 个答案:

答案 0 :(得分:4)

我通过创建局部视图“_Footer”并将其放在“_Layout”上来处理相同的场景。

    @ ViewBag.Title

        @ Html.Partial( “_报头”)

<div id="content">
    <div id="nav-bar">
        @Html.Partial("_Menu")
   </div>

    <div class="container">
    @RenderBody()
</div>
</div>
<div id="footer">
    @Html.Partial("_Footer")
</div>

@Html.Partial("_Scripts")

答案 1 :(得分:2)

Sure

<footer>
    @if (IsSectionDefined("footer"))
    {
        @RenderSection("footer")
    } 
    else
    {
        ... put your default footer here
    }
</footer>

在想要覆盖页脚的视图中,只需定义该部分。

答案 2 :(得分:0)

您可以将页脚放在SiteLayout.cshtml中。有关在MVC 3中使用布局的详细信息,请参阅this article