Синтаксис Razor динамически называет элементы HTML - PullRequest
21 голосов
/ 27 июля 2011

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

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

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

<input type="checkbox" id="chkTag@tag.ID" name="chkTag@tag.ID" value="@tag.TagName"/>

, но Razor просто обрабатывает все это как строку и называет их chkTag@tag.ID.

Так что, наверное, мой вопрос в том, как добавить идентификатор динамической бритвы в конец моего Имени и идентификаторов?

Спасибо

Ответы [ 2 ]

42 голосов
/ 27 июля 2011

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

chkTag@(tag.ID)

Полный код:

foreach (var tag in Model.Tags)
{
    <input type="checkbox" id="chkTag@(tag.ID)" name="chkTag@(tag.ID)" value="@tag.TagName"/>
}
4 голосов
/ 27 июля 2011
@for (int i = 0; i < Model.Tags.Count(); i++)
{

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

}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...