自定义路由到ASP.Net Core 2.1中的关于Razor页面

时间:2018-06-25 13:45:14

标签: asp.net-core razor-pages asp.net-core-2.1

我想将.Net Core 2.1脚手架放置的基本项目中的“关于”页面移动到名为Public(/Public/About.cshtml)的目录下的某个位置,但仍由脚手架菜单项调用它-即< / p>

<a asp-page="/About">About</a>

我该怎么做?

1 个答案:

答案 0 :(得分:1)

关于页面移动到新的子文件夹页面/公共后,仍要保留“ / About”作为该页面的URL,则可以修改该页面的路线,该怎么做:

<a asp-page="/About">About</a>更改为<a asp-page="/Public/About">About</a>

asp-page标签帮助程序需要指向剃刀页面文件的路径而不是URL。它将根据您添加的约定或自定义路由生成最终URL。

在您的ConfigureServices方法中,您需要配置 / Public / About 剃刀页面应使用/About作为路由,而不是/Public/About作为路由。如果未配置,则默认设置。因此,您的方法中必须包含以下内容:

services.AddMvc()
    .AddRazorPagesOptions(
        options => options.Conventions.AddPageRoute("/Public/About", "/About")
    );

AddPageRoute方法的第一个参数是剃刀页面的路径,第二个参数是新路径。因此,如果您执行应用程序并单击About链接,则会发现/About会精确指向/Public/About。浏览器也不包含/Public/

如果想了解有关Razor页面自定义路由的更多信息,请选中official documentation