使用Visual Studio 2019预览版2.0,.NET Core SDK 3.0.100-preview8-013656。服务器端的blazor应用程序。
The blazor docs说渲染组件的方法是调用Html.RenderComponentAsync
。我在任何地方都找不到这个静态Html
类。
在SDK目录中,当我查看Microsoft.AspNetCore.Components.dll时,我看到它具有一个带有此类方法的HtmlRenderer
类,但它不是静态的。
当我查看AspNetCore源代码时,我在命名空间HtmlHelperComponentExtensions
Microsoft.AspNetCore.Mvc.Rendering
类
MVC?我很困惑我使用的是最新的SDK,该文档只是旧版本吗?
如果我尝试直接导航到组件的路由,我将得到(await Html.RenderComponentAsync())以及与控制台的signalR异常一起直接写到我的文档中。
答案 0 :(得分:1)
当我查看AspNetCore源代码时,我看到一个 命名空间中的HtmlHelperComponentExtensions类 Microsoft.AspNetCore.Mvc.Rendering
MVC?我很困惑我使用的是最新的SDK,是简单的文档 老吗?
否,文档不旧... Html.RenderComponentAsync 不是Blazor。 Blazor没有Html帮助器的概念,其文件扩展名是Component文件的.razor或普通类的.cs。
@(await Html.RenderComponentAsync<Counter>(new { IncrementAmount = 10 }))
以上代码使用Html帮助器方法RenderComponentAsync 呈现一个嵌入在MVC应用程序中的名为 Counter 的组件,并将其值10传递给其IncrementAmount属性。
如果选择服务器端Blazor应用程序,则会在Pages文件夹中为您创建一个名为_Host.cshtml的文件。该文件包含方法RenderComponentAsync,其类型说明符为 App ,这是Blazor应用程序的根元素,因此会预先渲染整个应用程序。
要执行的操作: 确保安装Visual Studio 2019的最新预览版: .NET Core 3.0预览版8需要Visual Studio 2019 16.3预览版2或更高版本
要安装最新的Blazor WebAssembly模板,还运行以下命令:dotnet new -i Microsoft.AspNetCore.Blazor.Templates :: 3.0.0-preview8.19405.7
您应该选择Blazor Server App(服务器端Blazor),然后一切准备就绪。您无需添加其他任何内容。
答案 1 :(得分:0)
问题是你想在错误的情况下使用 Html.RenderComponentAsync 是它不起作用的原因,而且你可能无法继续。您的实际问题是您希望在完整的 blazer 应用程序的情况下在另一个 razer 组件或 blazer 页面中显示 Razer 组件。此时,解决方案是,而不是这样做
@(await Html.RenderComponentAsync<Counter>(new { IncrementAmount = 10 }))
就这样做
\<Counter IncrementAmount = 10/>