Model view controller 当应用程序在页面上运行时,如何在视图中使用_Layout.cshtml

Model view controller 当应用程序在页面上运行时,如何在视图中使用_Layout.cshtml,model-view-controller,navigationbar,razor-pages,Model View Controller,Navigationbar,Razor Pages,在Razor页面中,默认情况下包括_Layout.chstml(据我所知,在某些地方有一个设置)。如果您不想在Razor页面上使用_布局模板,请放置: @{ Layout = null; } 但是,在MVC视图中,您引用了_Layout.chstml: @{ ViewBag.Title = "ThankYou"; Layout = "~/Views/Shared/_Layout.cshtml"; } 我甚至不确定是否可以使用相同的布局。我希望如此,我只是没有Razor

在Razor页面中,默认情况下包括_Layout.chstml(据我所知,在某些地方有一个设置)。如果您不想在Razor页面上使用_布局模板,请放置:

@{
    Layout = null;
}
但是,在MVC视图中,您引用了_Layout.chstml:

@{
    ViewBag.Title = "ThankYou";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
我甚至不确定是否可以使用相同的布局。我希望如此,我只是没有Razor Pages应用程序(.NET Core 2.2 Razor Pages)中视图的路由语法

我试过:

@{
    ViewBag.Title = "ThankYou";
    Layout = "/Shared/_Layout.cshtml";
}

但是它触发了一个找不到的错误。

假设您想在MVC视图中使用Razor页面布局,请使用虚拟文件路径,就像在MVC示例中一样:

@{
    ViewBag.Title = "ThankYou";
    Layout = "~/Pages/Shared/_Layout.cshtml";
}
顺便说一句,Razor Pages应用程序中布局页面的“设置”位于中。默认版本包括以下内容:

@{
    Layout = "_Layout";
}

在我的_布局页面中,我在引用RoutedData的行上得到一个空引用错误:“var pageRoute=ViewContext.RoutedData.Values[“page”].ToString();”因此,我接受你的答案,但我必须找出如何绕过RoutedData.RoutedData不存在,但
页面
值仅与Razor页面相关。它不存在于MVC视图中。我已经找到了如何捕捉空引用问题的方法。我正在将container类更改为fluid,用于2个具有非常宽的表的页面。我正在使用此支票:var pageRoute=“”;if(ViewContext.RouteData.Values[“page”]==null){//别管pageRoute}否则{pageRoute=ViewContext.RouteData.Values[“page”].ToString();}