【问题标题】:Is there a way to check if a url has route constraint in Blazor?有没有办法在 Blazor 中检查 url 是否有路由约束?
【发布时间】:2021-10-01 06:06:05
【问题描述】:

我有一个带有路由约束@page "/users/{userId:int}"的页面

我还有一个页面@page "/users/"

我想知道要路由到哪个 url,然后根据它执行操作。

我正在考虑是否应该找到一种方法来检查 url 是否具有路由约束(甚至获取约束及其类型),我的问题将得到解决。

更多信息

我正在导航菜单页面上检查此内容,以便知道将哪个菜单项设置为活动

【问题讨论】:

  • 您要在哪里执行此测试?为什么?
  • 我有一个导航菜单页面,我需要在其中进行检查,以便知道要保留哪个菜单项
  • 不应该只是某种if (userId.HasValue){ <a asp-route-userId="@userId" .... } else { ... }
  • Router(通常在App组件中)有routedata,可以级联使用。该 routedata 具有可能有用的属性。我不确定您所说的“要保留哪个菜单项”是什么意思 - 所以不确定这是否会有所帮助
  • 纯粹从 UI 角度来看? IE。将用户菜单显示为活动状态?

标签: c# .net-core blazor blazor-webassembly


【解决方案1】:

在这种情况下,如果您调用用户页面,那么@page "/users/" 如果您使用参数调用用户而不是 @page "users/{userid:int}" 将调用此页面 这取决于你在叫什么

【讨论】:

  • 我想在通话后以编程方式检查。
【解决方案2】:

您可以像这样在生命周期事件中检查它:

[Parameter]
public int? userId { get; set; }

protected override void OnParametersSet()
{
  if (userId is not null)
  {
    // Perform action when user id is present
  }
}

请注意,OnParametersSet 也有异步版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-02
    • 2023-02-09
    • 2012-10-23
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    相关资源
    最近更新 更多