Использовать HtmlHelper в шаблоне Kendo

#c# #kendo-ui #kendo-template

#c# #kendo-пользовательский интерфейс #kendo-template

Вопрос:

То, что я пытаюсь сделать, кажется довольно простым, но я не уверен, возможно это или нет.

У меня есть Kendo Template и я хочу использовать HtmlHelper то, что я создал внутри него, но у меня возникла проблема с передачей в него значения.

Вот как выглядит мой шаблон:

 <script type="text/x-kendo-tmpl" id="reviewTemplate">
    <div class="panel panel-default">
        <div class="panel-heading">
            <div class="panel-title">
                #:ProducerProfileDisplay#
            </div>
        </div>
        <div class="panel-body">
            @Html.Raw(Html.DisplayRating(#:Rating#))
            <p>#:ReviewText#</p>
        </div>
    </div>
</script>
  

Проблема в том, что ему совсем не нравится синтаксис, и я не могу скомпилировать свой проект. И если я решу поместить его в кавычки, то он буквально просто передастся в строке #:Rating# .

Кстати, созданный мной метод ожидает double.

Есть идеи?

Комментарии:

1. Вы просто не можете смешивать шаблоны C # и Kendo. Выберите один: или вы обрабатываете Rating на C # и присваиваете значение ViewModel перед загрузкой представления; Или вы создаете DisplayRating в javascript, чтобы вызвать его внутри шаблона. Я бы остановился на первом.

2. Шаблоны отображают html в клиенте с помощью javascript после загрузки страницы, тогда как C # Razor запускается на сервере до доставки страницы, следовательно, их нельзя объединить. Варианты, предоставленные DoneVoteMeDown, абсолютно верны. Что вы выберете, зависит от вас, но я был бы склонен написать версию вашего помощника на javascript, которую вы можете вызывать как функцию, возвращающую html, между парой маркеров #. Только потому, что я предпочитаю отображать html в представлениях или в клиенте, а не включать html в модель представления.

3. Спасибо вам обоим за ваши комментарии. Я пошел дальше и просто создал функцию javascript, которая делала то же самое, что и мой html helper, и она работает отлично. 🙂