asp.net Mvc _布局

时间:2019-02-16 06:42:00

标签: c# html asp.net-mvc

a

如您在图片中看到的,我有主页/概述

这是代码:

  <!-- Breadcrumbs-->
            <ol class="breadcrumb">
                <li class="breadcrumb-item">
                    <a href="@Url.Action("Index" , "Home")">Home page</a>
                </li>
                <li class="breadcrumb-item active">Overview</li>
            </ol>

这在asp.net MVC中的“布局”中,因此我可以将概述的名称更改为我动态选择的其他页面的名称?

例如,当我转到客户页面时,我想像这样

家庭/客户

我希望这个动态地出现,所以我不会在所有页面中都编写相同的代码,这是可能的吗?

3 个答案:

答案 0 :(得分:0)

您将执行以下操作:

<li class="breadcrumb-item active">@ViewBag.Title</li>

有关SO的更多信息:ViewBag.Title vs. Page.Title in ASP.NET MVC 3

答案 1 :(得分:0)

要执行此工作,您需要拥有一个站点地图。 首先,您需要安装MVC网站地图组件。此组件非常受欢迎:https://github.com/maartenba/MvcSiteMapProvider

您还可以查看本教程以了解如何使用它:https://joeylicc.wordpress.com/2014/10/03/asp-net-mvc-5-menu-using-site-map-provider-bootstrap-3-navbar/ 但总而言之:您应使用如下所示的帮助器:

@Html.MvcSiteMap()

读取站点地图并基于该站点地图显示面包屑

答案 2 :(得分:0)

因此您可以在布局上这样做:

<li class="breadcrumb-item active">@ViewBag.PageTitle</li>

从上方查看内容页面(使用_Layout的页面)

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.PageTitle = "Overview"
}

从另一个页面的客户(cshtml)(该页面使用_Layout)

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.PageTitle = "Customers"
}

因此,当您点击任何页面时,分配给-> ViewBag.PageTitle的内容都会显示在主布局上(在屏幕上)。