C#Blazor客户端从URL读取哈希参数

Igo*_*ova 5 c# blazor

我在Blazor有一个项目

在客户端,我想读取哈希参数

我知道如何在JavaScript中进行操作-但我的问题是在Blazor项目的c#客户端中如何进行操作

例如,我有一个URL http:// localhost:5060 /#token = 12345678

怎么服用token

我在index.cshtml中的代码

@page "/"
@inject Microsoft.AspNetCore.Blazor.Services.IUriHelper UriHelper

<h1>Hello, world!</h1>

url is @Url

@functions {
protected override void OnInit() {
    Url = GetUrl();
}

public string Url { get; set; }

public string GetUrl() {
    return ?;
}
}
Run Code Online (Sandbox Code Playgroud)

Isa*_*aac 6

如果可以使用JavaScript进行操作,请使用JavaScript Interop:1.定义一个提取令牌的JavaScript函数。2.定义一个调用该函数的C#方法

但是最好使用本身使用JavaScript的Blazor来做到这一点……您需要的是查看Microsoft.AspNetCore.Blazor.Services.UriHelperBase和/或Microsoft.AspNetCore.Blazor.Browser.Services中定义的方法。 .BrowserUriHelper

希望这可以帮助...

注意:<base>元素是在wwwroot文件夹中的Index.Html文件中设置的。

HTML <base>元素指定用于文档中包含的所有相对URL的基本URL。文档中只能有一个元素。

可以使用document.baseURI从脚本中查询文档的基本URL。”

尝试这个:

var absoluteUrl = UriHelper.GetAbsoluteUri();
var token = absoluteUrl.Substring(absoluteUrl.IndexOf("=") + 1);
Run Code Online (Sandbox Code Playgroud)