Blazor中是否有与Html.Raw等效的文件?
我有一些存储在字符串中的HTML。我如何在Blazor/Razor视图中呈现它而不使用自动HTML编码?现在还没有,但可能在下一个版本中会有它: 解决方法(从该问题开始): cshtmlBlazor中是否有与Html.Raw等效的文件?,blazor,Blazor,我有一些存储在字符串中的HTML。我如何在Blazor/Razor视图中呈现它而不使用自动HTML编码?现在还没有,但可能在下一个版本中会有它: 解决方法(从该问题开始): cshtml <pre> <span ref="Span"></span> @functions{ [Parameter] string Content { get; set; } private ElementRef
<pre>
<span ref="Span"></span>
@functions{
[Parameter] string Content { get; set; }
private ElementRef Span;
protected override void OnAfterRender()
{
Microsoft.AspNetCore.Blazor.Browser.Interop.RegisteredFunction.Invoke<bool>("RawHtml", Span, Content);
}
}
</pre>
@((MarkupString)myMarkup)
@functions {
string myMarkup = "<p class='markup'>This is a <em>markup string</em>.</p>";
}
@功能{
[参数]字符串内容{get;set;}
私有元素引用Span;
受保护的覆盖无效OnAfterRender()
{
Microsoft.AspNetCore.Blazor.Browser.Interop.RegisteredFunction.Invoke(“RawHtml”,Span,Content);
}
}
index.html
<pre>
<span ref="Span"></span>
@functions{
[Parameter] string Content { get; set; }
private ElementRef Span;
protected override void OnAfterRender()
{
Microsoft.AspNetCore.Blazor.Browser.Interop.RegisteredFunction.Invoke<bool>("RawHtml", Span, Content);
}
}
</pre>
@((MarkupString)myMarkup)
@functions {
string myMarkup = "<p class='markup'>This is a <em>markup string</em>.</p>";
}
registerFunction('RawHtml',函数(元素,值){
element.innerHTML=值;
对于(var i=element.childNodes.length-1;i>=0;i--){
var childNode=element.childNodes[i];
element.parentNode.insertBefore(childNode,element);
}
element.parentNode.removeChild(元素);
返回true;
});
Blazor0.5.0版本中添加了渲染原始HTML的功能。这是如何从包含HTML内容的string
呈现原始HTML的示例:
@((MarkupString)myMarkup)
@功能{
string myMarkup=“这是一个标记字符串。
”;
}
更多信息可以在公告中找到。请注意,您可以使用MarkupString将标记注入动态Blazor页面,这是Blazor通常不允许的。也许这不是我应该做的,但如果你想插入一个自定义的谷歌搜索框,它会很有用。谢谢,你的建议对我很有帮助。