【问题标题】:Using MvcHtmlString with jQuery templates - what's the correct razor syntax?将 MvcHtmlString 与 jQuery 模板一起使用 - 正确的剃刀语法是什么?
【发布时间】:2012-01-16 07:33:33
【问题描述】:

我有这样的 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 让 MVC 正确显示richMessage?

【问题讨论】:

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


    【解决方案1】:

    尝试使用{{html richMessage}} 而不是${richMessage}。您的问题在于 ${} 默认对值进行编码。

    【讨论】:

    • 谢谢一百万,你为我节省了很多时间:)
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多