路由覆盖在 asp.net 核心 3.1 razor 页面中不起作用
Route Override not working in asp.net core 3.1 razor pages
我正在使用 Asp.Net Core 3.1 Razor pages
。我需要覆盖我所在区域的其中一个页面的路由。
我的 Area
- Blog
中有 Home
页面,当前路线是 localhost/blog/home
。我需要将其更改为 localhost/blog
。我在同一博客区域中有一个 Index
页面,但它有一个路由参数。所以它将是 localhost/blog/my-blog-name
。而且这不会干扰 localhost/blog
我在startup.cs
中添加了ConfigureServices
中的设置
services
.AddRazorPagesOptions(options =>
{
options.Conventions.AddAreaPageRoute("Blog", "/", "/blog/home");
});
这是我的文件夹结构,
但是当我导航到 localhost/blog
时,我发现 404
未找到。请协助我哪里错了。
I have Home page in my Area
- Blog
and the current route is localhost/blog/home
. I need to change this to localhost/blog
. I have an Index
page in the same blog area but it has an route parameter.
when i navigate to localhost/blog I get an 404 not found.
如果你查看AddAreaPageRoute method的定义,你会发现它包含区域名称、页面名称和路由模板,如下所示。
.AddAreaPageRoute("{area_name_here}", "{page_name_here}", "{route_here}")
根据您的要求和代码,我们发现您没有正确配置到页面的指定路由,如果您的博客区Index
页面接受了一个必需的(非可选的)路由参数,这浏览 localhost/blog
.
时会导致 404 错误
要解决问题并达到要求,您可以尝试修改如下代码。
services.AddRazorPages()
.AddRazorPagesOptions(
options =>
{
options.Conventions.AddAreaPageRoute("Blog", "/home", "/blog");
}
);
测试结果
我正在使用 Asp.Net Core 3.1 Razor pages
。我需要覆盖我所在区域的其中一个页面的路由。
我的 Area
- Blog
中有 Home
页面,当前路线是 localhost/blog/home
。我需要将其更改为 localhost/blog
。我在同一博客区域中有一个 Index
页面,但它有一个路由参数。所以它将是 localhost/blog/my-blog-name
。而且这不会干扰 localhost/blog
我在startup.cs
ConfigureServices
中的设置
services
.AddRazorPagesOptions(options =>
{
options.Conventions.AddAreaPageRoute("Blog", "/", "/blog/home");
});
这是我的文件夹结构,
但是当我导航到 localhost/blog
时,我发现 404
未找到。请协助我哪里错了。
I have Home page in my
Area
-Blog
and the current route islocalhost/blog/home
. I need to change this tolocalhost/blog
. I have anIndex
page in the same blog area but it has an route parameter.when i navigate to localhost/blog I get an 404 not found.
如果你查看AddAreaPageRoute method的定义,你会发现它包含区域名称、页面名称和路由模板,如下所示。
.AddAreaPageRoute("{area_name_here}", "{page_name_here}", "{route_here}")
根据您的要求和代码,我们发现您没有正确配置到页面的指定路由,如果您的博客区Index
页面接受了一个必需的(非可选的)路由参数,这浏览 localhost/blog
.
要解决问题并达到要求,您可以尝试修改如下代码。
services.AddRazorPages()
.AddRazorPagesOptions(
options =>
{
options.Conventions.AddAreaPageRoute("Blog", "/home", "/blog");
}
);
测试结果