微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MVC模式:显示元素数组的最佳方法

如何解决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 举报,一经查实,本站将立刻删除。