在Asp.NET Razor代码中嵌套foreach循环是否可行?

6

我有下面的代码,我想要加一个内部foreach循环,但是添加了内部循环后代码无法编译。如果有帮助将不胜感激。

foreach (var answer in q.Answers)
{
    <input type="checkbox" name="AnswerDetails" value="@answer.AnswerText" data-answerid="@answer.Id">@answer.AnswerText<br />

    foreach (var research in @answer.ResearchSet)
    {
       @:<p>@research.Image</p>
    }
}

在外层的foreach循环中,您缺少了@Razor符号。 - RobertKing
另外,您没有正确关闭输入标签。 - HABJAN
1个回答

5
@foreach (var answer in q.Answers)
{
    <input type="checkbox" name="AnswerDetails" value="@answer.AnswerText" data-answerid="@answer.Id" />@answer.AnswerText<br />

    foreach (var research in answer.ResearchSet)
    {
       <p>@research.Image</p>
    }
}

嗨,Sergey,我尝试了你的建议,但它对我没有起作用。你能否看一下下面的代码示例,并告诉我我做错了什么? - Andre Lashley
如果 (q.QuestionFormat == QuestionFormatType.multiChoiceMultiAnswer) { @:<form action="#" class="submissionForm" data-questionid="@q.Id" data-questionformat="@q.QuestionFormat"> @foreach (var answer in q.Answers) { <input type="checkbox" name="AnswerDetails" value="@answer.AnswerText" data-answerid="@answer.Id" />@answer.AnswerText<br />foreach (var research in answer.ResearchSet) {

@research.Image

}
} <button type="submit" class="btn btn-primary">保存答案</button> @:</form>
- Andre Lashley
我已经把它搞定了,Sergey,感谢你的帮助。 - Andre Lashley
1
@AndreLashley 对不起,Andre,我刚才离开了一会儿。很高兴你解决了问题!顺便说一下,考虑使用 Html.BeginForm() 创建表单。此外,如果您混合使用代码和纯文本,则需要使用 @:。如果您有HTML标记,则Razor非常聪明地定义代码何时结束以及标记何时开始。 - Sergey Berezovskiy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接