#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, и она работает отлично. 🙂