问题描述
这可能吗? 我在MVC中拥有大部分的Web应用程序。 但是我将要建立一个技术角,我只想转到简单的Razor页面,而不是设置复杂的终结点以在StartUp中到达那里。
看起来像页面会更好地组织简单的页面,例如:
articles / AspNetCore3-列出相关文章
articles / AspNetCore3 / WhatsNew-在此处设置文章
articles / AspNetCore3 / Blazor-在此处讨论这项新技术
articles / Azure / Overview-这些类型的URL简单 内容,但Razor Page准备在需要时添加功能
解决方法
您可以使用@RenderPage("_MenubarPage.cshtml");
。
您还可以使用@RenderPage("_MenuPage.cshtml",MyModel)
,它可以通过将其作为第二个参数添加到视图中,从而提供所需的任何模型。
如果您使用的是局部语言,也可以使用@{Html.RenderPartial("_articles/AspNetCore3/WhatsNew");}
。但不要忘记,您需要使用剃须刀代码块@{}
文件路径可能会有所不同,具体取决于您从何处渲染“部分”。
关于使用“布局”页面,您只需在cshtml页面顶部声明您想要的布局。下面的示例:
@page
@model Project.Pages.ProjectModel
@{
ViewData["Title"] = "Test Page";
Layout = "~/Pages/Shared/_Layout.cshtml";
}
您还可以使用<partial>
标记在.NETCore 3.1中呈现部分。下面的示例:
<partial name="Shared/_ProductPartial.cshtml" for="Product">
标记助手是.NET Core中的 new 。为了向后兼容,HTML Tag帮助器仍然存在。
部分标签上的Microsoft文档位于here