Gre*_*Gum 10 asp.net-core asp.net-core-2.0
默认情况下,Razor Page应用程序会转到Home/Index
有没有办法将其更改为Home/App?
这在MVC中非常简单,但是使用不同路由设置并因此使用MVC路由的Razor页面不适用.
我认为它会在某个选项中出现,但我看不到它:
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeFolder("/Account/Manage");
options.Conventions.AuthorizePage("/Account/Logout");
options. ??SetDefaultPage??
});
Run Code Online (Sandbox Code Playgroud)
我试过这个:
options.Conventions.AddPageRoute("/App", "");
但现在找到两个默认路由并生成错误:
AmbiguousActionException:匹配多个动作.以下操作匹配路由数据并满足所有约束:
页面:/ App
页面:/索引
可以通过从项目中删除Pages/Index.cshtml来解决此错误,但我也希望保留该页面.
很确定这是不可能的。Index文档说运行时控制默认的搜索。我找不到当前版本中发生这种情况的位置,但在即将发布的版本中添加了IndexFileName新static的内部类:PageRouteModelFactory
private static readonly string IndexFileName = "Index" + RazorViewEngine.ViewExtension;
不过,向 中添加一个配置属性似乎并不困难RazorPagesOptions。ASP.NET 人员的反应非常灵敏,我会以 GitHub 问题的形式提出请求,并希望得到最好的结果。
在我的情况下,歧义是由Pages/Index.cshtml留在项目中引起的。这有效:
options.Conventions.AddPageRoute("/App", "");Pages/Index.cshtml| 归档时间: |
|
| 查看次数: |
2835 次 |
| 最近记录: |