今天,我每天都在开发一个Blazor已经有几个星期了,当我在VisualStudio2022中以调试模式启动它时,突然开始在_Host.cshtml中抛出一个异常。该错误显示在所附图像中。
_Host.cshtml的当前状态
@page "/"
@namespace Ano.Blazor.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
Layout = "_Layout";
}
<component type="typeof(App)" render-mode="ServerPrerendered" />
<link rel="stylesheet" href="_content/Radzen.Blazor/css/standard-base.css"/>
<script src="_content/Radzen.Blazor/Radzen.Blazor.js"></script>
下面是App.razor,该组件似乎要在_Host.cshtml中抛出异常
<CascadingAuthenticationState>
<Router AppAssembly="@typeof(App).Assembly">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
<NotAuthorized>
<Ano.Blazor.Pages.RedirectToLogin></Ano.Blazor.Pages.RedirectToLogin>
</NotAuthorized>
</AuthorizeRouteView>
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
<NotFound>
<PageTitle>Not found</PageTitle>
<LayoutView Layout="@typeof(MainLayout)">
<p role="alert">Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
</CascadingAuthenticationState>
奇怪的是,当异常第一次出现时,我没有对_Host.cshtml或App.razor做任何更改。我刚才做的是添加脚手架项目的身份,特别是ConfirmEmail剃须刀页面。
昨天增加了Radzen组件的使用,没有引起任何问题。但为了排除这种情况,我尝试运行这个应用程序时,删除了对Radzen css和js的引用。例外情况持续存在。
我已经梳理了解决方案中的每一个文件,寻找任何可能导致这种情况的东西。该应用程序构建和重建没有错误。这个例外并没有告诉我问题出在哪里。
作为比较,我将先前的推送复制到一个单独的文件夹中,在VS 2022的一个新实例中启动了解决方案,在调试模式下运行了该应用程序,并正常启动。这让我想,也许解决方案本身就是错的。堕落了?我删除了.vs文件夹,并允许原始解决方案重新创建它,但之后异常仍然存在。
有人见过这个问题吗?
发布于 2022-01-13 05:10:15
问题是,我意外地用相同的@page指令创建了两个页面。
EditUser.razor有这个指令..。
@page "EditUser{id}"
EditMyAccount.razor也有同样的指令..。
@page "EditUser{id}"
我把EditMyAccount.razor改成了这个指令..。
@page "EditMyAccount"
这解决了运行时的问题。
在我看来,这个问题太难找到了,因为Visual没有任何编译警告或运行时异常来提示页面指令。希望这能在未来帮助到其他人。
发布于 2022-02-07 16:16:21
似乎你的路线上的任何问题都会导致这个错误。我试图绑定一个querystring参数(“/{参数}?{variable}”),并收到了相同的错误。
https://stackoverflow.com/questions/70688076
复制相似问题