У меня есть страница с результатами поиска, на которой я выводлю список элементов, отформатированных определенным образом с использованием представления MVC Razor.
@for (int i = 0; i < group.Count(); i++) {
<div class="result">
<div class="ordinal">@((i+1).ToString()).</div>
<div class="detail"><p>@group.ElementAt(i).Name</p></div>
</div>
}
Клиент может дополнительно отфильтровать эти результаты, используя jQuery AJAX, чтобы получить новый набор данных в виде шаблонов JSON и jQuery, чтобы отобразить набор результатов вместо оригинала. Это шаблон jQuery:
<script id="resultTemplate" type="text/x-jquery-tmpl">
{{each(i, result) results}}
<div class="result">
<div class="ordinal">${i+1}.</div>
<div class="detail"><p>${name}</p></div>
</div>
{{/each}}
</script>
, который связан после вызова AJAX:
var result = $("#resultTemplate").tmpl({ results: data });
$("#resultsColumn").empty().append(result);
Обратите внимание, как мне пришлось продублировать форматирование HTML для результата поиска как в коде Razor на стороне сервера, так и в коде jQuery на стороне клиента. Я хотел бы иметь только одну версию шаблона с привязкой к данным, чтобы уменьшить вероятность несоответствия при необходимости вносить изменения.
Чтение Вступление Стивена Уолтера к шаблонам jQuery он намекает на интеграцию «лучше вместе» при использовании шаблонов jQuery с ASP.NET MVC, поэтому мне было интересно, есть ли средство, которое решает вышеуказанный сценарий.
Спасибо.