Как вы перебираете список в c # с помощью усов и получаете каждое значение в качестве заполнителя - PullRequest
0 голосов
/ 29 мая 2019

Я использую усы # для .Net и чтобы помочь мне получить значения в HTML-шаблон для приложения электронной почты.Я могу заставить усы-заполнители хранить отдельные значения, но у меня возникают проблемы при переборе списка и сохранении значений в заполнителе.

Мой список примеров в приведенном ниже коде представляет собой простую строку List с двумя элементами.Когда электронное письмо отправляется и прикрепляется HTML-шаблон, все, что я получаю для этого, - это System.Collections.Generic.List'1 [System.String] дважды.Я понимаю, почему он появляется дважды, потому что в списке 2 элемента.Я просто не знаю, как заставить это показать каждое значение вместо этого.

List<string> namelist = new List<string>();
namelist.Add("Val");
namelist.Add("Jeff");

const string names = "{{#each name}} <h2> Hello, {{name}}</h2> {{/each}}";

HtmlFormatCompiler compilers = new HtmlFormatCompiler();

Generator generator = compilers.Compile(names);

string result = generator.Render(new
{
     name = namelist

});


string template = System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath
("~/Views/Shared/_HpNotificationEmailTemplate.cshtml"));

string emailBody = string.Format(template,result);

Я ожидаю, что он покажет значения Val и Jeff, но я просто получаю System.Collections.Generic.List'1 [System.String] дважды.

1 Ответ

0 голосов
/ 29 мая 2019

Не знаю, но синтаксис шаблона «Усы для C #» не похож на тот, который используется в javascript. Это, вероятно, старая реализация, в любом случае, решение состоит в том, чтобы использовать {{this}} вместо {{name}}

 List<string> namelist = new List<string>();
 namelist.Add("Val");
 namelist.Add("Jeff");

 const string names = "{{#each name}} <h2> Hello, {{this}}</h2> {{/each}}";
 HtmlFormatCompiler compilers = new HtmlFormatCompiler();

 Generator generator = compilers.Compile(names);

 string result = generator.Render(new
 {
    name = namelist
 });
...