在 Blazor WASM 应用程序中,
Program.Main
方法拥有 string[] args
参数。ASP.NET Core 主机站点是否可以向其中传递参数?我需要在应用程序构建之前从服务器读取一个值。Program.Main
方法拥有 string[] args
参数。ASP.NET Core 主机站点是否可以向其中传递参数?我需要在应用程序构建之前从服务器读取一个值。没有默认的方法将这些参数传递进来,因为它们确实被硬编码为 null 在 blazor.webassembly.js
中。但是可以通过 JavaScript 提供它们。
在您的索引页面中,包含以下内容:
<!-- Put this script block above the one that loads blazor.webassembly.js -->
<script>
window.startupParams = function() { return ['first', 'second', 'third']; };
</script>
在您的Program.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 ...
}
Program.Main
是由 blazor.webassembly.js
在这里调用的:here:
invokeEntrypoint(assemblyName, null);
该方法调用了一个名为dotnet静态方法,该方法将空值转换为一个空数组。
因此,目前无法向其传递参数,因为你只能获得一个空数组。