将MvcHtmlString与jQuery模板一起使用 - 什么是正确的剃刀语法?

时间:2011-12-08 21:50:55

标签: c# asp.net-mvc jquery-templates mvchtmlstring

我有这样的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.Create来正确显示richMessage?

2 个答案:

答案 0 :(得分:2)

您应该使用jQuery模板的{{html property}}语法。这与MVC方面的@Html.Raw类似。

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

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

答案 1 :(得分:2)

尝试使用{{html richMessage}}代替${richMessage}。问题在于${}默认对值进行编码。