如何只授予对定义的路由的访问权限?

时间:2018-04-15 14:53:14

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

我在Startup.cs中定义了以下代码:

services.AddMvc().AddRazorPagesOptions(options =>
{
    options.Conventions.AddPageRoute("/ListVehicles", "/vehicle-list");
});

我如何只允许使用网址"车辆列表"而不是只在网址中键入cshtml文件名ListVehicles?我尝试过options.Conventions.Clear()但是没有用。

1 个答案:

答案 0 :(得分:1)

您可以使用自定义IPageRouteModelConvention来清除Selectors中的PageRouteModel列表:

services.AddMvc().AddRazorPagesOptions(options =>
{
    options.Conventions.AddPageRouteModelConvention("/ListVehicles", model =>
    {
        model.Selectors.Clear();
    });
    options.Conventions.AddPageRoute("/ListVehicles", "vehicle-list");
});

现在向http://localhost/ListVehicles发出请求将导致404错误,而对http://localhost/vehicle-list的请求将返回ListVehicles.cshtml页。