【发布时间】:2019-10-04 18:31:41
【问题描述】:
我有一个使用 jQuery 库来显示“确认”对话框的应用程序。
当用户在对话框上单击“确定”或“取消”时,首先对我的 Javascript 代码进行回调。从那里我根据用户做出的决定调用 Blazor 方法。
这一切看起来像这样:
我的js代码:
$('.alert-yesno).on('click', function() {
// For simplicity I immediately call the Blazor method
DotNet.invokeMethodAsync('[Assembly name]', 'DoSomething')
.then(data => {
// do something...
});
});
Blazor 页面:
@inject MyService MyService
<button class="alert-yesno">Show dialog</button>
@code
{
[JSInvokable]
public static async Task DoSomething()
{
// How to use the non static MyService here...?
}
}
这一切都很好。 Javascript 部分调用我的 Blazor 方法。但是我如何从那里使用MyService?这被注入到页面中。这很好,因为它利用了依赖注入。
我不想每次都在 static 方法中创建一个 new 实例,因为那样我会丢失所有自动注入的依赖项。
我该如何解决这个问题?
【问题讨论】:
标签: c# .net-core blazor blazor-server-side