(string[]参数)是如何传递给程序的.Blazor WebAssembly应用程序中的Main



Blazor WASM应用程序中的Program.Main方法具有string[] args参数。ASP。NET核心主机站点将参数传递到这些?在应用程序构建之前,我需要能够从服务器读取值。

没有默认的方式传入这些参数,因为它们在blazor.webassembly.js中确实被硬编码为null。但是,也可以通过javascript提供它们。

在您的索引页面中,包括以下内容:

<!-- Put this script block above the one that loads blazor.webassembly.js -->
<script>
window.startupParams = function() { return ['first', 'second', 'third']; };
</script>

在您的程序.cs:

public static async Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
var js = (IJSInProcessRuntime)builder.Services.BuildServiceProvider().GetRequiredService<IJSRuntime>();
var startupParams = js.Invoke<string[]>("startupParams");
// ... etc ...
}

正如在这个github答案中发现的。

我们将asp.net核心的索引页面作为index.cshtml页面提供。并在服务器端设置逻辑,用所需的参数填充脚本中的数组。

Program.Mainblazor.webassembly.js调用,此处为:

invokeEntrypoint(assemblyName, null);

它命中一个dotnet静态方法,然后将null转换为一个空数组。

所以不,现在不可能向它传递参数,因为你只得到一个空数组。

相关内容

  • 没有找到相关文章

最新更新