在 Razor 组件 (Blazor) 中呈现 Razor 部分视图



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

反之亦然吗?我可以在 Razor(Blazor( 组件中执行等效于 @Html.RenderPartial(( 的操作吗?

例如

MVC 视图使用@(await Html.RenderComponentAsync<Test>(RenderMode.ServerPrerendered))来呈现组件

该组件管理状态等,并使用等效的@Html.RenderPartial("Someview.cshtml", someModel)来呈现具有模型绑定的标准剃须刀视图。

您可以使用 RenderFragment 从静态文件、剃刀页面或 MVC 视图加载 Html 代码,方法是从其 URL 加载其内容。

样本

@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();
}
}

最新更新