【发布时间】:2021-06-27 01:01:58
【问题描述】:
编辑:出于某种原因,每当我重建应用程序时,我对 BO.razor 所做的所有更改都已消失。我通过从 BOType.razor 另存为创建了 BO.razor,但我尝试关闭 BO.razor 并重新打开它,我的更改被保留。这些变化是第一次出现。重建和 BO.razor 将 BOType.razor 的内容复制到其中。
这显然解释了为什么路线会发生冲突,但会引发更进一步、更令人不安的问题。
WTF.
我正在尝试构建我的第一个 Blazor 应用程序。到目前为止的基本思想是,您可以拥有不同的业务对象,并根据业务对象类型动态生成页面。
到目前为止,我正在尝试构建两个页面
/{BOType}/ - 列出此类型的所有有效 BO
/{BOType}/{BOID:int}/ - 显示此 BO 及其相关数据。
当我第一次运行该应用程序时,它完全按照我的想象运行。 /Form/ 显示所有已保存的表单,/Form/1 显示包含 Form 1 数据的页面。
当我重建应用程序或在使用 watch 运行应用程序时保存某些内容时,我收到以下异常:
InvalidOperationException: The following routes are ambiguous:
'{BOTName}' in 'BlazorApp.Pages.BOType'
'{BOTName}' in 'BlazorApp.Pages.BO'
Microsoft.AspNetCore.Components.LegacyRouteMatching.LegacyRouteTableFactory.RouteComparison(LegacyRouteEntry x, LegacyRouteEntry y)
InvalidOperationException: Failed to compare two elements in the array.
System.Collections.Generic.ArraySortHelper<T>.Sort(Span<T> keys, Comparison<T> comparer)
如果我更改变量的名称(一个名为 BOTName,一个名为 BOType)或更改顺序(/BOType/ 和 /view/BOType/BOID,或 /BOType/ 和 /BOType /view/BOID)。
令人恼火的部分是,每当我尝试其中一项更改时,它似乎都可以工作,因为出于某种原因,它第一次解释这些路径时就明白了我的意思。然后我更改其他内容并保存或只是重建,我得到了不明确的路线异常。
是否有人对我如何以某种方式坚持我的原始工作路线有任何想法,或者对编译器以这种方式解释它的一些提示?我是 Web 应用程序开发的新手,所以我还在学习,Blazor 的实现看起来很简单,但显然不可靠:(
谢谢
【问题讨论】:
标签: c# routes blazor url-routing blazor-server-side