c# - 在 Razor 组件 (Blazor) 中渲染 Razor 局部视图
问题描述
我最近发现了 Blazor,并且一直在玩一些测试项目,以更好地衡量我如何将其包含在未来的项目中。来自 MVC 背景,我从一个 MVC 项目开始,并向其中添加了 Razor 组件,我将这些组件嵌套在我的标准 MVC razor 页面中。
反过来可能吗?我可以在 Razor(Blazor) 组件中执行与 @Html.RenderPartial() 等效的操作吗?
例如
MVC View 用于@(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();
}
}
推荐阅读
- jmeter - JMeter BeanShell PreProcessor 修改请求
- google-cloud-sql - 连接上的 IP 但仍无法通过 Workbench 访问
- python - 将 httpie post 请求转换为 python 请求库
- android - queryPurchases 为空,但用户在正确的帐户下,并且在尝试购买时说他们已经拥有该项目
- html - 如何打破表格TD元素中的长单词?
- javascript - 通过 javascript 上传票证上传到 Azure Blob
- javascript - 限制 Firebase 与 Electron 应用程序通信
- java - 比较 Flink 中的 2 个数据流以检索丢失的数据
- php - 在 WordPress 网站上为人们创建私人页面
- php - Indeed 授权 API 返回无效授权