渲染全球标题

时间:2012-10-24 15:41:43

标签: asp.net-mvc asp.net-mvc-3 layout viewbag

我试图从数据库中提取已保存的标题。我希望它每次都加载而不使用视图来调用它。所以当我从布局调用变量时,我想要一个变量。我怎么能这样做?

在布局示例中:

@ViewBag.ShowTitle   

这将显示呈现布局的每个页面。我不知道在没有控制器的情况下如何将数据库中的字段调用到屏幕上。

2 个答案:

答案 0 :(得分:1)

只需拨打_Layout.cshtml页面中的PartialView即可。

@Html.Partial("_Title")

但您需要Controller与数据库进行互动,并将Title值分配给ViewBag

<强> PartialView

<div>
    <h2>
        @ViewBag.ShowTitle
    </h2>
</div>

您也可以按照以下链接中的说明进行操作,您可以在其中定义ViewModelController并在@Html.Action内调用_Layout.cshtml

ASP.NET MVC 3 _Layout.cshtml Controller

答案 1 :(得分:1)

只有当您的数据库支持直接Web访问(例如Raven DB http://ravendb.net/docs/http-api)时,才能避免使用控制器。

但你也可以使用会话技巧。例如,您可以在global.asax中读取并将标题保存到Session,并在页面上使用会话变量,但编写这样的代码非常糟糕。