在Blazor中有相当于Html.Raw的东西吗?

blazor

我有一些存储在字符串中的HTML。如何渲染这是一个没有自动HTML编码的Blazor / Razor视图?

一般承认的答案

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”公告中找到。


热门答案

不是现在,但可能会在下一个版本中使用它: 遵循这个

解决方法(从该问题):

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;
            });
        



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow