我必须在Blazor服务器端项目中使用javascript库。
该库正在用于连接到APP。它需要通过在后端使用get方法获取访问令牌来进行初始化。
现在,get方法可以成功获取访问令牌,下一步是将其呈现在字体末端以初始化库。
但是,我想在code
中添加一个_Host.cshtml
块,但似乎根本不支持。
然后,我尝试将代码和script
块修改为index.cshtml
。好吧,现在它报告script
块仍不会在网页上呈现。
我该如何解决?你能帮我吗?谢谢。
Blazor与没有Rendersection
方法的原始asp.net内核不同。
这是关于此的另一个问题:@RenderSection Equivalent in Blazor?
答案 0 :(得分:1)
您只能在Blazor Componenets的外部中添加JavaScript。您可以将它们添加到index.html或_Host.cshtml中。您所有的外部功能都将存在,或位于组件dll中。在Blazor中,您可以调用这些函数并传递结果
答案 1 :(得分:0)
我找到了另一种方法来实现这一目标:
这是js:
window.TestFunctions = {
InvokeAlert: function (AlertString) {
alert(AlertString);
}
};
这是Blazor的代码:
protected override void OnInitialized()
{
Task.Run(() =>
{
var request = new HttpRequestMessage(HttpMethod.Get,
string.Format(NavigationManager.Uri+"Callback/JSInitialise"));
var client = _clientFactory.CreateClient();
var response = client.SendAsync(request);
while (true)
{
if (!string.IsNullOrEmpty(_SignatureModel.signature))
{
JSRuntime.InvokeVoidAsync("TestFunctions.InvokeAlert", _SignatureModel.signature);
break;
}
Task.Delay(200);
}
});
}
好吧,现在可以使用。