带查询字符串的RazorPage的友好URL

问题描述 投票:0回答:1

我想创建友好的路由,以映射到单个Razor页面及其基础GET处理程序的不同查询字符串值。我也可以将查询字符串切换为路由的一部分。我们的想法是,我们只有一个页面来加载文件列表并可以进行过滤。如果URL更直接,我希望使用它。如果不可能,我可以选择/Files/In/Files/Out

示例

/Files?direction=In  -> /In
/Files?direction=Out -> /Out

有没有办法做这样的事情?

asp.net-core routing razor-pages
1个回答
0
投票

您可以使用在路由模板中定义的路由数据参数,作为.cshtml文件中@page指令的一部分:

@page "{direction?}"

然后您可以在文件页面的OnGet方法中访问route参数值:

public void OnGet(string direction)
{
     if (!string.IsNullOrEmpty(direction))
     {
           //filter files based on direction

     }
}

您可以将方向值传递为/Files/In/Files/Out,而无需过滤器就直接使用/Files

© www.soinside.com 2019 - 2024. All rights reserved.