0

カミソリでモデルからいくつかのコードをループしようとしています。

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>
4

1 に答える 1

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);
于 2013-10-30T20:39:56.407 に答える