我想实现这样的目标:
<li><a href="#">Item1</a>
<ul>
<li><a href="#">Item2</a></li>
<li>
<a href="#">Item3</a>
<ul>
<li>
<a href="#">Item4</a>
<ul>
<li>
<a href="#">Item5</a>
<ul>
<li>
<a href="#">Item6</a>
<ul>
<li> <a href="#">Item7</a> </li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li> <a href="#">Item8</a> </li>
</ul>
</li>
项目1等从字典中提取,字典可以根据用户输入进行更改。以下是我在视图中尝试使用MVC应用程序的内容:
@foreach (var stp in Model.stepData)
{
<li><a href="#">@stp.Key</a></li>
<ul>
@for (int i = 0; i < stp.Value.Count; i++)
{
<li><a href="#">@stp.Value[i]</a></li>
}
</ul>
}
我知道我想添加&lt; ul&gt;在&lt;之前li>在@stp.Value循环..但是需要打开..结束标记需要在写入该迭代的最后一个之后。所以我认为可能是另一个循环输入标签..但这根本不起作用。我有可能在HTML中实现这一点吗? 我试过的代码:
@for (int i = 0; i < stp.Value.Count; i++)
{
<ul><li><a href="#">@stp.Value[i]</a></li>
}
@for(int i = 0; i<stp.Value.Count;i++){</ul>}
TIA求助。
尝试下面的答案,但得到它无法在循环中的当前上下文中找到listItems,并且当使用@for时,它还抱怨字符文字中的字符过多。
目标框架是.Net Core 2.0; MVC 5
答案 0 :(得分:1)
这应循环显示stp.Value
并返回包含在您的父li
标记内的ul
标记中的每个项目:
<ul id="myList">
// stp.Value items here
</ul>
<script>
var list = docment.getElementById('myList');
var listItem = '';
@for (int i = 0; i < stp.Value.Count; i++){
listItem += '<li><a href="#">' + @stp.Value[i] + '</a></li>'
}
list.innerHTML = listItem;
</script>
大多数MVC框架都有自己的方法,但由于你没有指定使用哪个框架,以上是使用vanilla JS的一般方法。
答案 1 :(得分:0)
对上面的答案稍作修改,以便它适用于剃刀循环 : `
tabLayout.getTabAt(item.getItemId()).setText("Ds");
`