Pet*_*ris 4 webassembly blazor
Program.MainBlazor WASM 应用程序中的方法具有string[] args参数。ASP.NET Core 主机站点是否可以将参数传递给这些?在构建应用程序之前,我需要能够从服务器读取值。
没有默认的方式来传递这些参数,因为实际上它们在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>
Run Code Online (Sandbox Code Playgroud)
在您的 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 ...
}
Run Code Online (Sandbox Code Playgroud)
正如在这个github答案中找到的那样。
我们从 asp.net core 提供索引页面,作为 index.cshtml 页面。并在服务器端具有逻辑,用所需的参数填充脚本中的数组。
Program.Mainblazor.webassembly.js 在这里调用:
invokeEntrypoint(assemblyName, null);
Run Code Online (Sandbox Code Playgroud)
它击中了一个dotnet 静态方法,然后将 null 转换为空数组。
所以不,现在不可能向它传递参数,因为你只会得到一个空数组。
| 归档时间: |
|
| 查看次数: |
391 次 |
| 最近记录: |