Использование MvcHtmlString с шаблонами jQuery - какой правильный синтаксис бритвы? - PullRequest
2 голосов
/ 09 декабря 2011

У меня есть такой шаблон 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, но я не могу понять правильный синтаксис.

Я также пытался использовать атрибут [AllowHtml] в свойстве richMessage, но безуспешно.

Моя проблема: как использовать MvcHtmlString.Create, чтобы позволить MVC правильно отображать richMessage?

Ответы [ 2 ]

2 голосов
/ 09 декабря 2011

Попробуйте использовать {{html richMessage}} вместо ${richMessage}. Ваша проблема заключается в том, что ${} кодирует значения по умолчанию.

2 голосов
/ 09 декабря 2011

Вы должны использовать синтаксис {{html property}} шаблонов jQuery.Это равно значению @Html.Raw на стороне MVC.

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

Выводит содержимое свойства richMessage в тег span без выхода из HTML.

...