我正在使用 ASP.NET Core Razor 页面,并且此指令位于我的 Blog.cshtml 顶部
@page "/blog/{category?}/page/{pageNo?}"
现在我希望这些路线都与上面的匹配:
/blog
-> 类似于说category为null默认添加page并且pageNo为null
/blog/aspnet
-> 就像说类别是
aspnet
默认添加页面而pageNo为null
/blog/page/1
-> 这就像说类别为空页面存在且 pageNo 为 1
/blog/aspnet/page/1
-> 这就像说类别是 aspnet 页面并且 pageNo 是 1
我必须做出哪些改变?
我尝试使用
AddPageRoute
但以下不起作用:
// Add services to the container.
builder.Services.AddRazorPages().AddRazorPagesOptions(options => {
options.Conventions.AddPageRoute("/blog", "blog/{category?}/page/{pageNo?}");
});
如有任何帮助,我们将不胜感激。谢谢你。
确保您的博客页面位于
Pages
文件夹(/Pages/Blog.cshtml
)中。
如果您在
Blog.cshtml
顶部有此指令:
@page "/blog/{category?}/page/{pageNo?}"
请务必使用
AddPageRoute
,如下所示:
builder.Services.AddRazorPages().AddRazorPagesOptions(options => {
options.Conventions.AddPageRoute("/blog", "blog/{category?}");
options.Conventions.AddPageRoute("/blog", "blog/{category?}/page");
options.Conventions.AddPageRoute("/blog", "blog/page/{pageNo?}");
});