我在我的_布局中有一个共享的视图.我的标题名为"_header.cshtml".

我希望显示数据库中的文本和图像,因此需要我的控制器进入数据库并将其返回给_Header.cshtml.

我怎么能做到这一点,因为调用的控制器在用户进入的每一页都是不同的.有没有办法让控制器具有共享视图?

这里是_布局.cshtml

    <div id="header">
        <div id="title">
            @Html.Partial("_Header")
        </div>

        <div id="logindisplay">
           @Html.Partial("_CultureChooser")
            <br />
           @Html.Partial("_LogOnPartial")
        </div>

        <div id="menucontainer">
           @Html.Partial( "_MenuPartial")
        </div>
    </div>

    <div id="main">
        @RenderBody()
        <div id="footer">
        </div>
    </div>

</div>

推荐答案

在控件操作中,可以指定视图的名称:

public class MenuController : Controller
{
    [ChildActionOnly]
    public ActionResult Header()
    {
        var model = ... // go to the database and fetch a model
        return View("~/Views/Shared/_Header.cshtml", model);
    }
}

现在,在你的_Layout.cshtml而不是@Html.Partial("_Header")中,做以下事情:

@Html.Action("Header", "Menu")

Asp.net相关问答推荐

.NET 框架 3.5 和 TLS 1.2

如何在asp.net中单击按钮的新选项卡中打开页面?

如何使用 executeReader() 方法仅检索一个单元格的值

无法连接到 ASP.Net 开发服务器问题

使用会话变量有多安全 - asp.net / c#

如何将配置转换应用于外部配置文件

有没有办法将 onclick 事件添加到 ASP.NET 标签服务器控件?

OnCheckedChanged 事件未触发

ASP.NET 控件无法在 Visual Studio 2008 的代码隐藏中引用

ASP.NET MVC4 jquery/javascript 包的使用

为什么 Asp.Net Identity IdentityDbContext 是一个黑盒?

如何使用 app_GlobalResource 或 app_LocalResource?

如何设置默认页面 asp.net

将通用列表绑定到转发器 - ASP.NET

以编程方式从后面的代码中关闭 aspx 页面

回发后 Document.Ready() 不起作用

将字典绑定到中继器

从物理路径获取相对虚拟路径

ConfigurationManager.AppSettings 缓存

禁用文本框的模型绑定