在razor组件中渲染cshtml

问题描述 投票:0回答:1

我有一些部分的 cshtml 视图。该视图继承自 Microsoft.AspNetCore.Mvc.Razor.RazorPage。

我想在 blazor 组件中渲染此视图(继承自 Microsoft.AspNetCore.Components.ComponentBase)。

在cshtml中可以使用@Html.Partial(...),但在blazor组件中@Html不可用。

有什么方法可以做到这一点吗?

c# .net-core blazor blazor-server-side
1个回答
1
投票

在 Blazor 中,您可以通过将 HTML 作为字符串加载,然后将其转换为

MarkupString
来接近
@Html.Partial
@Html.PartialAsync 的功能,因为从 ASP.NET Core 3.1 开始,它具有 显式转换运算符。 :

@code 
{
    string anchorHtmlString = "<a class='btn btn-primary'>Click me!</a>";
}

@((MarkupString)anchorHtmlString)

注意强制转换表达式包含在

@()
内。

字符串本身可以由 OnInitializedAsync 中的另一个异步 HTTP 请求加载。

string anchorHtmlString = await HttpClient.GetStringAsync("request/url");
© www.soinside.com 2019 - 2024. All rights reserved.