Как добавить объект из моего HTML в шаблон jsRender - PullRequest
0 голосов
/ 21 октября 2019

В моем cshtml я начинаю с некоторого обычного синтаксиса html / razor, который идет в виде

@foreach (var product in Model.Basket.Items
{
 ……
  <div class="itemMessageContent></div>
}

, где div является целью моего шаблона.

Так как мнедобавить продукт в шаблон? или это уже доступно мне на основании div в стороне моего foreach?

1 Ответ

0 голосов
/ 11 ноября 2019

Рекомендуется добавить шаблон перед тегом </body>:

<script id="template" type="text/x-jsrender">
    {{:name}}
</script>

Способ атрибута данных

Наиболее очевидное и несколько ошибочное решение.

Добавить в свой проект Newtonsoft.Json

Install-Package Newtonsoft.Json

Код обновления:

@foreach (var product in Model.Basket.Items)
{
  <div data-jsrender='@JsonConvert.SerializeObject(product)' class="itemMessageContent"></div>
}

Должен получиться следующий html:

 <div data-jsrender='{name="Apple"}' class="itemMessageContent></div>
 <div data-jsrender='{name="Banana"}' class="itemMessageContent></div>

Теперь вы можете отображать данные:

var template = $('#template');
$('.itemMessageContent').each(function(){
    var element = $(this);
    var data = element.data('jsrender');
    element.html(template.render(data));
})
...