为剃刀页面创建别名

时间:2018-11-21 12:04:15

标签: c# asp.net-core asp.net-core-mvc razor-pages

我正在使用asp.net剃须刀页面。

我创建了默认的asp.net core 2.1应用程序,然后添加了3页:

enter image description here

通过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:(

2 个答案:

答案 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)
}