假设我在 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>"
并在view
部分打印myString
,它很吵:)
有什么解决办法吗?
P.s.我在那里谈论 C#,但在 Java ecc 上应该是相同的
最佳答案
只需输入 <div>
循环内
<% foreach (var item in myArray) { %>
<div class='my class'>
<%= item %>
</div>
<% } %>
更新 好的,从您的评论来看,您似乎不希望 View 中出现任何循环逻辑。真的你不应该担心这个。 View 中有这样的东西。它可能看起来有点困惑,但它通常是正确的做事方式。将 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();
}
您可以在 View 中使用它,例如...
<%= Html.DivList(Model.MyList, "myClass") %>
这要整洁得多。
关于c# - MVC模式: best way to display an array of elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360208/