【问题标题】:Looping through a List<string[]> and get values of it循环遍历 List<string[]> 并获取它的值
【发布时间】:2017-09-06 10:05:20
【问题描述】:

我正在尝试显示此数组列表的值,问题是这些值未显示在浏览器中。我有列表/数组的值。 我不知道问题或语法有什么问题,有什么建议吗?

               @{
                    List<string[]> validate_rules = new List<string[]>();
                    if (TempData["verification_errors"] != null)
                    {
                        validate_rules = (List<string[]>)TempData["verification_errors"];
                    }
                }

                @foreach (var item in validate_rules)
                {
                    <label >@item[0].ToString() @item[2].ToString()</label>
                }

【问题讨论】:

  • 今天/昨天发布了确切的羞耻问题......这是来自一些教程吗?或家庭作业?删除( 并在item[2] 前面添加@
  • 您如何确认列表中有元素?你做了什么调试? exact 输出是什么?在我看来,这整件事似乎都包含在 @{} 代码块中。如果只使用更简单的内联语法会发生什么?
  • 那是 剃须刀 吗?应该这样标记。
  • @hashim : 强烈建议不要在此处重复发布您的问题*
  • 请说明这个问题与您之前发布的问题有何不同

标签: c# arrays list razor arraylist


【解决方案1】:

您已将整个事情包围在Razor Code Block 中。来自文档:

与表达式不同,代码块内的 C# 代码不会呈现。

我很惊讶它甚至在这样的代码块中使用内联 HTML 在语法上是有效的,除非你忽略了一个错误。从代码块中删除输出。像这样的:

@{
    List<string[]> validate_rules = new List<string[]>();
    if (TempData["verification_errors"] != null)
    {
        validation_rules = (List<string[]>)TempData["verification_errors"];
    }
}
@foreach (var item in validation_rules)
{
    <p>@(item[0].ToString() + " " + item[2].ToString())</p>
}

输出甚至可以简化为:

@foreach (var item in validation_rules)
{
    <p>@item[0] @item[2]</p>
}

【讨论】:

  • 我用你的答案更新了我的代码,但仍然有问题?!
  • 对这个问题有什么建议吗?
  • @hashim:你能用你当前的代码更新这个问题吗?另外,您如何确认列表中是否包含任何元素?
  • 我调试了所有元素,它有所有元素的值
  • @hashim:我刚刚在一个视图中测试了你的确切代码(从这个答案更新),它工作正常。问题似乎是别的。也许您的列表没有元素,或者首先不在TempData 中,或者其他一些问题。但代码有效。
猜你喜欢
  • 2012-06-16
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
  • 2019-08-13
  • 1970-01-01
  • 2021-09-05
相关资源
最近更新 更多