【发布时间】:2021-11-10 03:01:28
【问题描述】:
我有一个 blazor 服务器应用程序,我想获取当前页面名称,以便出于其他原因保留该页面的数据。
我可以看到 NavigationManager 提供了完整的 uri(如 http://site:1234/page)以及基本 uri(如 http://site:1234),我可以通过删除基本内容来确定页面uri 从完整的 uri 中获取 /page 组件。
但是,如果页面有参数传递给它,那么 uri 将变为 http://site:1234/page/param1/param2 并且很难从完整的 uri 中可靠地确定页面名称。
如果你有一个嵌套的页面结构,那就更复杂了,所以 http://site:1234/category/page/param1/param2。
一种方法是为@page 指令使用一个变量,但是它不会暴露在组件之外,而不会使它在层次结构中向上\向下冒泡,所以如果我想从 Navigation\appLayout 组件中获取当前页面,我会需要对需要的每个页面的参数进行级联(提出?)。
另一种方法是切换到更正式的查询字符串方法(例如 /page?param1=value¶m2=value 等),但这也意味着每个页面都需要更改为然后读取和解释该字符串,而不是依赖于默认的 blazor 参数解释。
我会接受完整路径(所以 /category/page)
有没有更好的方法来做到这一点?
【问题讨论】:
标签: blazor