假设我在view
部分有这个div:
<div class='my class'>
<%=myVariableToPrint %>
</div>
那里没有问题:我只是从我的类/ bean(model
)获取我的数据并将其放在div上。
现在,假设myVariableToPrint是一个包含10个字符串的数组,我需要打印div 10次,每个div都为数组上的每个字符串。我该怎么办?
将div放在模型上,如:
myString+="<div class='my class'>"+myVariable[i]+"</div>"
并在myString
部分打印view
嘈杂:)
任何解决方案?
P.S。我在谈论C#,但在Java ecc上应该是相同的
答案 0 :(得分:3)
只需将<div>
放入循环
<% foreach (var item in myArray) { %>
<div class='my class'>
<%= item %>
</div>
<% } %>
<强>更新强> 好的,从您的评论中看起来您不希望视图中出现任何循环逻辑。真的你不应该担心。观点有这样的东西。它可能看起来有点乱,但它通常是正确的做事方式。将html放在你的模型中以便你可以渲染它绝对是一个非常糟糕的主意。请不要这样做。
另一种方法是使用自定义Html.Helper
方法。你可以做类似......
public static string DivList(this HtmlHelper helper, IList<string> list, string divClass)
{
var sb = new StringBuilder();
foreach(string item in list)
{
sb.AppendFormat("<div class=\"{0}\">{1}</div>", divClass, item);
}
return sb.ToString();
}
您可以在视图中使用它,如...
<%= Html.DivList(Model.MyList, "myClass") %>
这是一个很整洁。
答案 1 :(得分:2)
您应该使用foreach
循环迭代集合,并将HTML放入循环中。
使用Razor(因为它更容易):
@foreach(string s in something {
<div class="Something">@s</div>
}
答案 2 :(得分:1)
将该集合放入模型中。
视图遍历集合以创建最终输出。