在jQuery模板中使用MvcHtmlString -正确的razor语法是什么?

本文关键字:razor 语法 是什么 MvcHtmlString jQuery | 更新日期: 2023-09-27 18:17:08

我有这样的jQuery模板:

<script id="msgTmpl" type="text/x-jquery-tmpl">
    <li><span style="color:Black"><strong>${user.name}</strong> (${datetime})</span><br/><span>${richMessage}</span></li>
</script>

我这样使用它:

        $.post("/GetMessages", null, function (data, s) {
            if (data.messages) {
                $('#msgTmpl').tmpl(data.messages).appendTo('#chatList');
            }
        ... and so on.

richMessage可以包含HTML标签

我希望它被解释为HTML,而不是显示为标记序列…

我知道MVCHtmlString必须使用Create,但是我不知道正确的语法。

我还尝试在richMessage属性上使用[AllowHtml]属性,但没有成功。

我的问题是:如何使用MvcHtmlString。创建允许MVC正确显示richMessage ?

在jQuery模板中使用MvcHtmlString -正确的razor语法是什么?

尝试使用{{html richMessage}}代替${richMessage}。您的问题在于${}在默认情况下编码值。

应该使用jQuery模板的{{html property}}语法。这类似于MVC端的@Html.Raw

<span>{{html richMessage}}</span>

这将输出richMessage属性的内容到span标签,而不转义HTML。