在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
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因