我正试图在我的剃刀模型中循环一些代码。
TagGroups是TagGroups(简单)和标签组的标签列表。然后我有一个答复者从这个标签组中选择了一个标签,他的选择存储在他的答复者数据中。
@foreach (var tagGroup in @Model.TagGroups)
{
<optgroup label="@tagGroup.Name">
@foreach (var tag in tagGroup.Tags)
{
var selectedTag = @Model.Respondent.Tags.Where(r => r.Id == (int)tag.Id);
if (selectedTag != null)
{
<option selected="selected">@tag.Name</option>
}
else
{
<option>@tag.Name</option>
}
}
</optgroup>
}
问题是这会引发编译错误?我甚至试图在if selectedTag之前添加“@”,然后在一段代码中说@不是必需的。
我希望输出看起来像这样:
<optgroup label="NFC NORTH">
<option selected="selected">Chicago Bears</option>
<option>Detroit Lions</option>
<option>Green Bay Packers</option>
<option>Minnesota Vikings</option>
</optgroup>
答案 0 :(得分:6)
您无需在C#代码部分中添加@:
@foreach (var tagGroup in @Model.TagGroups)
应该是
@foreach (var tagGroup in Model.TagGroups)
和
var selectedTag = @Model.Respondent.Tags.Where(r => r.Id == (int)tag.Id);
应该是
var selectedTag = Model.Respondent.Tags.Where(r => r.Id == (int)tag.Id);