【问题标题】:Multiple route paramters with same key in ASP.NET razor pagesASP.NET 剃须刀页面中具有相同键的多个路由参数
【发布时间】:2021-10-06 10:11:30
【问题描述】:

我需要在ASP.NET razor pages 应用程序中对表数据创建多个快速过滤器。

例如Show only my issuesShow issues from London location 等过滤器。

我想使用单个路由参数 FilterBy 来管理所有这些快速过滤器,它可以使 url 像这样:

baseURL?FilterBy=OnlyMyIssues&FilterBy=LondonLocation

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 你能显示你用来过滤的代码吗,请
  • @D Gogana,Noah Stahl的代码可以工作,你可以试试看link,看看你的代码有没有问题。

标签: asp.net-core razor-pages


【解决方案1】:

您可以使用字符串数组(string[])类型的参数来捕获相同类型的多个值和查询字符串键。例如:

[HttpGet("/GetStuff")]
public IActionResult GetStuff([FromQuery] string[] FilterBy)
{
    // Apply each value in FilterBy, if any
}

对于这个查询:

GET /getstuff?filterby=foo&filterby=bar

您应该会在 API 方法中看到这一点:

如果您的过滤器需要不同类型的值,例如布尔值和字符串,那么这将不起作用或不是一个好的设计。最好使用像 issueTypelocation 这样的专用键,每个键都期望适当的值类型。

【讨论】:

  • 感谢诺亚的建议。我确实尝试过使用字符串数组,但这似乎不起作用。我会考虑您使用单独键的建议。谢谢
  • 请将您尝试过的代码添加到您的问题中。
猜你喜欢
  • 2020-05-30
  • 2022-01-07
  • 1970-01-01
  • 2020-07-09
  • 2020-07-11
  • 1970-01-01
  • 2021-04-05
  • 2020-07-15
  • 2018-12-04
相关资源
最近更新 更多