我想创建友好的路由,以映射到单个Razor页面及其基础GET处理程序的不同查询字符串值。我也可以将查询字符串切换为路由的一部分。我们的想法是,我们只有一个页面来加载文件列表并可以进行过滤。如果URL更直接,我希望使用它。如果不可能,我可以选择/Files/In
或/Files/Out
示例
/Files?direction=In -> /In
/Files?direction=Out -> /Out
有没有办法做这样的事情?
您可以使用在路由模板中定义的路由数据参数,作为.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
。