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

时间:2018-05-30 12:10:36

标签: blazor

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

3 个答案:

答案 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";
}