Con*_*eak 1 asp.net asp.net-mvc asp.net-mvc-5
我的_Layout.cshtml文件使用该ViewBag模型来渲染一些动态内容。
据我所知,ViewBag可以在控制器中填充并在视图和/或布局页面中访问。
我的问题是,如果我的布局页面正在使用@ViewBag.SiteName,我想避免在返回视图之前在每个控制器中设置此变量。有没有办法在全局级别上设置此变量?或者我应该如何将此数据传递到布局页面?
如果您在 ViewBag 中设置任何内容 - 这会在渲染布局之后发生 - 您就错过了机会。
正如其他人提到的,您可以创建一个“助手”控制器:
public class LayoutController : BaseController
{
[ChildActionOnly]
public ActionResult SiteName()
{
return new ContentResult {Content = "Site name goes here"};
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在您的布局中:
@{Html.Action("SiteName", "Layout")}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9037 次 |
| 最近记录: |