【发布时间】:2016-04-25 21:01:49
【问题描述】:
我正在使用带有 mvc 应用程序的 resharper 运行 Visual Studio 2015。我有一个视图,我想在其中创建一组嵌套的 div 标记,例如:
<div>
<label>...
<div>
<label>...
<label>...
<label>...
</div>
<div>
<div>
<label>...
<label>...
</div>
<label>...
<label>...
</div>
</div>
我有类似的代码
<div class="content">
@{
var count = 0;
var depthList = new Stack<int>();
<text>
<div class="NestedSelect">
</text>
foreach (var category in Model.OrderBy(m => m.LeftLink)) {
if (depthList.Count == 0) {
depthList.Push(category.Depth);
<text>
<label>
<input type="radio" name="categories" value="@category.Id"><span>@category.Name</span>
</label>
</text>
} else if (category.Depth > depthList.Peek()) {
depthList.Push(category.Depth);
<text>
<div>
<label>
<input type="radio" name="categories" value="@category.Id"><span>@category.Name</span>
</label>
</text>
} else if (category.Depth == depthList.Peek()) {
<text>
<label>
<input type="radio" name="categories" value="@category.Id"><span>@category.Name</span>
</label>
</text>
} else {
while (category.Depth < depthList.Peek()) {
depthList.Pop();
//@@@@
<text>
</div>
</text>
}
<text>
<label>
<input type="radio" name="categories" value="@category.Id"><span>@category.Name</span>
</label>
</text>
}
//@@@@
<text>
</div>
</text>
count++;
if (count == 0) {
}
}
}
</div>
编辑
注意循环中的 <text></div></text> 块(标记为 //@@@@)。 VS 和/或 resharper 非常反对我关闭的 div 标签似乎没有伙伴。开始的<text> 标记在编辑器中突出显示,但结尾的</text> 标记没有。它们有一个错误下划线和工具提示“结束标记缺少匹配的开始标记”。
我曾尝试使用 @: 构造,但是当代码被格式化时,它会将 @: 单独放在一行上,然后与裸 html 标记混淆。
如何用这个构建嵌套的 html 结构?
【问题讨论】:
标签: asp.net-mvc razor