【问题标题】:How to split a string in MVC and build a ul如何在 MVC 中拆分字符串并构建 ul
【发布时间】:2014-02-24 21:20:46
【问题描述】:

我需要拆分一个逗号分隔的字符串并构建一个<ul>

我似乎找不到最佳位置。

这是我的代码:

  <ul>
            @{
                string[] ps = Model.ProductsServices.Split(',');

                for (byte i = 0; i < ps.Length; i++)
                {
                    <li>ps[i]</li>
                }
            }
        </ul>

这是上面代码的结果。

【问题讨论】:

  • 在你的 for 循环体内,&lt;ul&gt; 标签与你正在访问的变量有何区别?也许尝试string.format? 将静态文本(在您的情况下为标签)与插入的数据分开?

标签: c# html asp.net-mvc-4 html-lists


【解决方案1】:

尝试从ps[i] 中输入@

<ul>
    @{
        string[] ps = Model.ProductsServices.Split(',');

        for (byte i = 0; i < ps.Length; i++)
        {
            <li>@ps[i]</li>
        }
    }
</ul>

此外,没有理由使用普通的 for 循环,foreach 更具可读性和性能。

var ps = Model.ProductsServices.Split(',');
foreach (string service in ps)
{
    <li>@service</li>
}

【讨论】:

  • +1。 byte 几乎不应该在常规代码中使用...int(或var,在这种情况下会将变量隐式定义为int)更容易阅读。与byte 不同,它也有很好的机会正确处理 300 个项目。
  • 在这种情况下,没有 300 个项目。我总是跟上数据大小,并在需要的地方使用字节、短、整数和长。很多人会默认为 int。在上面的例子中,如果我使用 long 真的没关系,因为这个页面上没有太多的处理;但是,我非常习惯于编写代码,因此将正确大小的数据分配到现在很自然的地方是非常严肃的。 for i 循环提供了最佳性能。
  • 不过,在很多情况下,使用 byte 将需要不必要的强制转换,实际上会损害性能。
猜你喜欢
  • 1970-01-01
  • 2014-07-29
  • 2021-09-29
  • 2021-02-14
  • 2020-09-22
  • 1970-01-01
  • 2020-12-01
  • 2011-04-16
  • 2011-01-09
相关资源
最近更新 更多