c# - 在 Razor 组件 (Blazor) 中渲染 Razor 局部 View

标签 c# asp.net-mvc asp.net-core .net-core blazor

我刚刚发现 Blazor,并且一直在玩一些测试项目,以更好地衡量我如何将其包含在 future 的项目中。来自 MVC 背景,我从一个 MVC 项目开始,并向其中添加了 Razor 组件,我将这些组件嵌套在我的标准 MVC Razor 页面中。

反过来可能吗?我可以在 Razor(Blazor) 组件内部做一些与 @Html.RenderPartial() 等效的事情吗?

例如

MVC View 使用 @(await Html.RenderComponentAsync<Test>(RenderMode.ServerPrerendered))渲染一个组件

该组件管理状态等并使用 @Html.RenderPartial("Someview.cshtml", someModel) 的等效项。使用模型绑定(bind)渲染标准 Razor View 。

最佳答案

您可以使用 RenderFragment通过从其 URL 加载其内容,从静态文件、razor 页面或 MVC View 加载 Html 代码。

sample

@page "/"
@page "/home"
@inject HttpClient _httpClient

<h1>Welcome</h1>
@_renderFragment

@code {
        protected override async Task OnInitializedAsync()
        {
            using var response = await _httpClient.GetAsync("http://localhost:4321/WelcomFragment").ConfigureAwait(false);
            var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
            _renderFragment = builder =>
            {
                builder.OpenElement(1, "p");
                builder.AddContent(2, new MarkupString(content));
                builder.CloseElement();
            };
            base.OnInitialized();
        }
}

关于c# - 在 Razor 组件 (Blazor) 中渲染 Razor 局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62209280/

相关文章:

asp.net-mvc - 如何使用 asp.net MVC razor 将两个模型组合成一个模型并将其传递给 View

asp.net-mvc - ELMAH 中未记录的错误

asp.net-mvc - 如何使用ASP.NET MVC项目处理HTTP 404

visual-studio-2015 - 将项目从 Visual Studio Code 移动到 Visual Studio 2015

c# - 数据 GridView 错误 : Value' should be between 'minimum' and 'maximum'

c# - C# 中具有 3 个参数的标量 sql 函数

c# - 一次将对象从List <T>中拉出多个ID?

c# - 无法加载我从未添加过的文件或程序集 'Microsoft.SharePoint.Library'

asp.net-core - Visual Studio MSI 安装程序 : Asp.net Core as a Window Service

git - 如何仅将子文件夹发布到我的 Azure 网站?