Blazor:未解析带参数的路由

Blazor:未解析带参数的路由,blazor,blazor-server-side,Blazor,Blazor Server Side,我有一个非常简单的页面: @page "/somepage/{id}" @namespace My.BlazorApp.Pages <h1>This would be page @Id</h1> @code { [Parameter] public long Id { get; set; } } @sp.Path生成somepage/0、somepage/1等 但是当我执行应用程序时,我很抱歉,这个地址没有任何内容 我缺少什么?必须在路由参数中指

我有一个非常简单的页面:

@page "/somepage/{id}"

@namespace My.BlazorApp.Pages

<h1>This would be page @Id</h1>

@code {

    [Parameter]
    public long Id { get; set; }
}
@sp.Path生成somepage/0、somepage/1等

但是当我执行应用程序时,我很抱歉,这个地址没有任何内容

我缺少什么?

必须在路由参数中指定:long

@page "/somepage/{id:long}"

我找到了解决办法。它与.csproj文件有关

在网上搜索发现,所以我做了一个非常简单的例子来复制它,让这个问题重新打开。我刚刚创建了Blazor应用程序的基本示例,并添加了一个只显示Foo的非常简单的页面

当我运行那个时,我也很抱歉,这个地址什么都没有

然后我进入.csproj,发现如下内容:

当我移除这个时,它开始工作了。另外,正如@inktkiller所说,我忘记添加:long类型定义,它首先导致在打开页面时引发异常


解释是:我正在将我的Razor页面创建为文本文件,然后重命名它们,因为当我使用Razor页面向导时,我的Visual Studio仍然生成旧的cshtml文件。文本文件以这种奇怪的方式添加到csproj。

如果您的@sp.PathNo中缺少前导/,则缺少前导斜杠是正确的。创建新Blazor应用程序时生成的示例也省略了它。问题完全不同,我解决了。这是另一个问题,它是正确的,但问题不同。我目前正在编写解决方案。但它仍然会发出消息抱歉,这个地址没有任何内容。当我键入这样的url时:它解决了一个问题,但引入了另一个问题。
@page "/somepage/{id:long}"