我想将.Net Core 2.1脚手架放置的基本项目中的“关于”页面移动到名为Public(/Public/About.cshtml)的目录下的某个位置,但仍由脚手架菜单项调用它-即< / p>
<a asp-page="/About">About</a>
我该怎么做?
答案 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。