我最近发现了 Blazor,并且一直在尝试一些测试项目,以更好地评估如何将其包含在未来的项目中。由于具有 MVC 背景,我从一个 MVC 项目开始,并向其中添加了 Razor 组件,并将其嵌套在标准 MVC razor 页面中。
反过来可能吗?我可以在 Razor(Blazor) 组件内部执行相当于 @Html.RenderPartial() 的操作吗?
例如
MVC 视图使用@(await Html.RenderComponentAsync<Test>(RenderMode.ServerPrerendered))
渲染组件
该组件管理状态等并使用等效的@Html.RenderPartial("Someview.cshtml", someModel)
使用模型绑定渲染标准剃刀视图。
您可以使用渲染片段 https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.components.renderfragment?view=aspnetcore-3.1通过从 URL 加载内容,从静态文件、razor 页面或 MVC 视图加载 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();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)