c# - Blazor 导航:在不更改重新加载页面的情况下更新 URL
问题描述
我在我的应用程序中使用 URL 参数来表示页面状态。
如何在不实际导航的情况下更改 URL?
谢谢!
(使用 blazor 服务器端)
解决方案
您可以使用 JS Interop 执行此操作并调用history.pushState(null, '', url)
这是一个简单的例子
。剃刀
@page "/"
@inject IJSRuntime jsRuntime
<input
@bind="url"
/>
<button @onclick="ChangeUrl">
Change Url
</button>
<p>@url</p>
@code {
[Parameter]
public string Url { get; set; }
void ChangeUrl(){
// You can also change it to any url you want
jsRuntime.InvokeVoidAsync("ChangeUrl", Url);
}
}
.js
window.ChangeUrl = function(url){
history.pushState(null, '', url);
}
请注意,这仅适用于视觉目的,它只会在服务器端更改浏览器,您可能不会看到更改。
推荐阅读
- excel - 如果整行使用 VBA 匹配,则删除重复的行
- jquery - 如何将复选框的状态作为变量获取到 ajax 对象中
- javascript - 为什么我的反应网络应用程序返回一个白色/空白页面?
- python-3.x - 其他语言的 pyenchant
- flutter - 颤动中的复选框的SetState
- python - 用于 VGG19 大规模预测的 GPU 多处理
- html - 在 React 表单提交上自动聚焦 div
- javascript - 在 JavaScript 中运行异步查询时的调用堆栈和事件循环
- javascript - 即使路径正确也无法访问 javascript 文件
- javascript - Discord JS Bot - 如何让我的机器人扫描传入消息中的关键字,然后断开用户与语音通道的连接