如何检查int类型为null的查询字符串是否无效



我想检查用户是否使用导航

  • 无效的查询字符串earthxyz
  • 有效查询字符串CCD_ 2或
  • 有效的查询字符串CCD_ 3

下面我只能检查最后两个。如何检查第一个?

<h3>Earth</h3>
@page "/earth"
@page "/earth/{id:int}"

@if(ID==null)
{
<h1>Null</h1>
}
else
{
<h1>@ID</h1>
}
@code {
[Parameter]
public int? ID { get; set; }
}

您不能以这种方式检查(或者更确切地说,以其他方式指示(,因为使用类似earthxyz的url,页面永远不会被命中;也就是说,永远不会呈现页面。

当路由器组件找不到与请求的路由匹配时,它会显示具有文本<p>Sorry, there's nothing at this address.</p>LayoutView组件

你的页面永远不会被点击。。。

这是App.razor 中的标记

<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">

</Found>
<NotFound>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>

我认为Blazor对此缺乏支持。

另一种方法是将id更改为字符串,并使用@Eliezer提到的TryParse手动将其解析为int

基于您的三个条件:

  • 如果TryParse成功,则意味着URL是有效的,并且其中包含一个int参数
  • 如果解析失败并且string ID为null或为空,则表示URL有效
  • 如果解析失败";以及";string ID不为null或空,这意味着URL无效

相关内容

  • 没有找到相关文章

最新更新