如何解决MVC模式:显示元素数组的最佳方法
| 假设我在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上应该一样
解决方法
只需将ѭ6放入循环中
<% 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\") %>
整整齐齐。
, 您应该使用foreach
循环对集合进行迭代,并将HTML放入循环中。
使用Razor(因为它更容易):
@foreach(string s in something {
<div class=\"Something\">@s</div>
}
, 将集合放入模型中。
该视图遍历集合以创建最终输出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。