Routes 如何检查用于调用页面/组件的路由?

Routes 如何检查用于调用页面/组件的路由?,routes,blazor,blazor-server-side,Routes,Blazor,Blazor Server Side,给定Blazor服务器端使用的Razor页面/组件 @page "/items/create" // create route @page "/items/edit/{id:long}" // edit route 在我的代码中,我需要知道是否使用了创建路由或编辑路由。我怎么检查这个 我已经知道NavigationManager.Uri,但这并不是真正的防错,例如NavigationManager.Uri.Contains(“编辑”)对于

给定Blazor服务器端使用的Razor页面/组件

@page "/items/create"         // create route
@page "/items/edit/{id:long}" // edit route
在我的代码中,我需要知道是否使用了
创建路由
编辑路由
。我怎么检查这个


我已经知道
NavigationManager.Uri
,但这并不是真正的防错,例如
NavigationManager.Uri.Contains(“编辑”)
对于
http://localhost:123/items/create/?edit=faked_edit
(因此,尽管使用了
创建路由
,但仍将声明使用了
编辑路由

我必须在我的情况下执行类似的操作,无法找到合适的解决方案,但检查整个路径的变通方法对我有效。您可以使用以下示例:

NavigationManager.Uri.Contains(“/items/edit/”)


此外,在一个地方,我还检查了
id
是否为null或空,这将成为编辑页面。

我通过创建包含添加和编辑功能的组件
MyEditor
解决了这个问题

// Edit.razor
<MyEditor EditMode="true" />

// Add.razor
<MyEditor EditMode="false" />
//Edit.razor
//添加剃须刀

然后在
MyEditor
内部,我使用
EditMode
参数,而不是试图通过
NavigationManager

确定它是添加还是编辑,我将在设置的
id
上转向。
0
null
表示创建。对我来说,
/edit/0
实际上是添加,这似乎很奇怪在创建组件之前,请参见下面我的答案。但是,我同意在实际中检查
id==0也可以,