我正在使用asp.net剃须刀页面。
我创建了默认的asp.net core 2.1应用程序,然后添加了3页:
通过default convention页将在路径中可用:
Page1 -> http://localhost/Page1
Page2 -> http://localhost/Folder/Page2
Page3 -> http://localhost/Page3
现在我想为page2添加一个别名,例如像这样的东西:
Page1 -> http://localhost/Page1
Page2 -> http://localhost/Page2
Page2 -> http://localhost/Folder/Page2
Page3 -> http://localhost/Page3
是否可以在没有adding-file-as-link的情况下为此页面创建其他路线/别名?
在@page中指定页面路线
@page "/Page2"
@{
ViewData["Title"] = "Page2";
}
<h2>Page2</h2>
将page2用作http://localhost/Page2
,但不能用作http://localhost/Folder/Page2
:(
答案 0 :(得分:3)
您可以使用AddPageRoute(...)
来实现。这是您遇到的情况的示例:
services
.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/Folder/Page2", "/Page2");
});
答案 1 :(得分:0)
这可能会有所帮助。 https://github.com/T4MVC/T4MVC
T4MVC是用于ASP.NET MVC应用程序的T4模板,该模板创建强类型的帮助程序,从而消除了许多地方使用文字字符串的情况。
它将为您的视图生成文字路径,然后您可以通过同一操作返回不同的视图。
if (someCondition){
return View(this.ViewNames.Page2)
}
else {
return View(this.ViewNames.Folder_Page2)
}