在使用 .NET 6 的 Blazer 服务器端项目中,我位于以下页面:
\nhttps://localhost:7252/Product/a3620f82-7cba-473c-9273-1cf300a181eb
\n我在此页面上有一个导航链接,它指向上面完全相同的 URL。但是当我点击该方法时,页面没有任何反应,也没有刷新或更新。我应该怎么办?
\n我的代码示例:
\n@page "/Product/{Id:guid}"\n@using Application.ProductGalleries.Queries\n@using Application.Products.Queries\n@using ViewModels.ProductVariants\n@using ViewModels.ProductVariantsDetails\n@using ViewModels.Products\n<div class="col-12 px-0">\n <h1>\n <NavLink href="@($"/Product/a3620f82-7cba-473c-9273-1cf300a181eb")">@Model.ProductName</NavLink>\n </h1>\n <p>\xd8\xaf\xd8\xb3\xd8\xaa\xd9\x87 \xd8\xa8\xd9\x86\xd8\xaf\xdb\x8c : @Model.CategoryName<span> \xd8\xa8\xd8\xb1\xd9\x86\xd8\xaf: @Model.BrandName</span></p>\n <nav aria-label="breadcrumb">\n <ol class="breadcrumb">\n <li class="breadcrumb-item"><NavLink href="/">\xd8\xb5\xd9\x81\xd8\xad\xd9\x87 \xd9\x86\xd8\xae\xd8\xb3\xd8\xaa</NavLink></li>\n <li class="breadcrumb-item"><NavLink href="/Products">@Model.CategoryName</NavLink></li>\n <li class="breadcrumb-item active" aria-current="page">@Model.BrandName</li>\n </ol>\n </nav>\n </div>\n\n\n@code {\n[Parameter]\npublic Guid Id { get; set; }\nprotected override Task OnParametersSetAsync()\n{\n return base.OnParametersSetAsync();\n}\nprotected override Task OnAfterRenderAsync(bool firstRender)\n{\n return base.OnAfterRenderAsync(firstRender);\n}\n\nprotected override bool ShouldRender()\n{\n return base.ShouldRender();\n}\nprotected override void …
Run Code Online (Sandbox Code Playgroud) 创建新的 blazor 项目dotnet new blazor
。修改Index.cshtml
:
@page "/"
@page "/{Id}"
<h1>Id = @Id</h1>
<p><a href="/">Without Id</a></p>
<p><a href="/15">With Id = 15</a></p>
@functions {
[Parameter]
public string Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
运行应用程序。
当我单击With Id = 15
链接时,一切都按预期工作 - url 已更改,参数{Id}
已分配给 value Id
,一切正常。
但是当我Without Id
在那之后单击链接时,url 已更改,但我的 Id 保持不变 - 等于 15。
为什么我的值没有改变?我在这里缺少什么?我怎样才能解决这个问题?