我正在将ASP.NET Core与 Pages 一起使用,并且创建了一个像这样的控制器:
namespace Demo.Pages.Channel
{
public class IndexModel : PageModel
{
public string ChannelUrl { get; set; }
public void OnGet(string url)
{
ChannelUrl = url;
}
}
}
我已经尝试绘制路线:
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/channel/index", "/{url}");
options.Conventions.AddPageRoute("/home/error", "/channel/index");
});
这些是我测试过的一些情况:
工作正常。但是当我尝试时,它仍然有效:
在以上选项中,我已将URL /channel/index
映射到错误页面/home/error
,但该页面无法重定向。为什么?
我要映射网址,例如:localhost:44392/{url}
,但是localhost:44392/channel/index
我该怎么做?
答案 0 :(得分:0)
我拥有的解决方案使我很难理解为什么我们需要使用此配置:
.AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/channel/index", "/{url}");
//options.Conventions.AddPageRoute("/home/error", "/channel/index");
});
要映射路线,我们在剃须刀页面上进行如下配置:
<!-- index.cshtml -->
@page "/{url}"
<!-- profile.cshtml -->
@page "/users/{userId}/profile"
<!-- error.cshtml -->
@page "/custom/error"
因此,我们需要删除配置.AddRazorPagesOptions()
。