Подтвердить что ты не робот

Синтаксис Razor Dynamically Name HTML Elements

У меня есть форма, которая создает несколько элементов флажка, используя код Razor, подобный этому

   foreach (var tag in Model.Tags)
    {
        <input type="checkbox" id="@tag.ID" name="@tag.ID" value="@tag.TagName"/>@tag.TagName<br /
    }

Это работает, но я хочу, чтобы ID и имена были в этом формате chkTag [TagID] Я пробовал это

<input type="checkbox" id="[email protected]" name="[email protected]" value="@tag.TagName"/>

но Razor просто обрабатывает все это как строку и называет их [email protected]

Итак, я думаю, мой вопрос: как добавить динамический идентификатор бритвы в конец имени и идентификатора?

Спасибо

4b9b3361

Ответ 1

Вы должны использовать круглые скобки вокруг tag.ID, например:

[email protected](tag.ID)

Полный код:

foreach (var tag in Model.Tags)
{
    <input type="checkbox" id="[email protected](tag.ID)" name="[email protected](tag.ID)" value="@tag.TagName"/>
}

Ответ 2

@for (int i = 0; i < Model.Tags.Count(); i++)
{

        @Html.CheckBoxFor(model => Model.Tags[i])

}

Это должно делать это нормально. Он автоматически укажет правильное имя.