Синтаксис 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]
Итак, я думаю, мой вопрос: как добавить динамический идентификатор бритвы в конец имени и идентификатора?
Спасибо
Ответы
Ответ 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])
}
Это должно делать это нормально. Он автоматически укажет правильное имя.