我有一些存储在字符串中的HTML。如何渲染这是一个没有自动HTML编码的Blazor / Razor视图?
答案 0 :(得分:10)
在Blazor
0.5.0版本中添加了呈现原始HTML的功能。这是如何从包含HTML内容的string
渲染原始HTML的示例:
@((MarkupString)myMarkup)
@functions {
string myMarkup = "<p class='markup'>This is a <em>markup string</em>.</p>";
}
更多信息可以在"Blazor 0.5.0 experimental release now available"公告中找到。
答案 1 :(得分:2)
不是现在,但可能会在下一个版本中使用它:Follow this
解决方法(来自该问题):
<强> CSHTML 强>
@functions{ [Parameter] string Content { get; set; } private ElementRef Span; protected override void OnAfterRender() { Microsoft.AspNetCore.Blazor.Browser.Interop.RegisteredFunction.Invoke("RawHtml", Span, Content); } }
<强>的index.html 强>
Blazor.registerFunction('RawHtml', function (element, value) { element.innerHTML = value; for (var i = element.childNodes.length - 1; i >= 0; i--) { var childNode = element.childNodes[i]; element.parentNode.insertBefore(childNode, element); } element.parentNode.removeChild(element); return true; });
答案 2 :(得分:2)
是,示例:
@page "/"
<h2>Title</h2>
<hr />
<p>
@ms
</p>
@code {
MarkupString ms => (MarkupString)description;
string description = $@"
This is an example of how Azure serverless functions can be consumed from Blazor WASM.
<br><br>
To run this project in development mode, the <b>HttpTriggerSample</b> project must be run simultaneously.
<br><br>
Serverless Functions origin: <b>{fs}<b>.";
// by example
static string fs => Program.IS_DEVELOPMENT ? "DevelopmentStorage" : "Azure";
}