Routes 如何检查用于调用页面/组件的路由?
给定Blazor服务器端使用的Razor页面/组件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(“编辑”)对于
@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也可以,