【问题标题】:MVC extension methodMVC 扩展方法
【发布时间】:2009-03-17 10:36:25
【问题描述】:

我正在尝试编写一个简单的扩展方法,该方法允许我通过文本而不是值来选择 MVC SelectList 中的项目。

这是我想出的,但是尽管在调试时将项目设置为选中,但返回的 SelectList 的所有项目都带有 selected = false。

有什么想法吗?

 public static SelectList SelectByText(this SelectList list, string TextValue)
        {
            foreach (var item in list)
            {
                if (item.Text == TextValue)
                {
                    item.Selected = true;
                }
            }
            return list;
        }

【问题讨论】:

  • 你能证明你如何证明所有 Selected 属性仍然是假的吗?是因为您在 UI 输出中看到的内容,还是因为直接在调试器中检查了对象。很难看出你是如何得到你描述的结果的。
  • 在 if(item.Text == TextValue){} 中,当值匹配时,项目的 selected 属性设置为 true,但在调试器的整个集合中,项目的属性设置为 false .我不明白这是怎么回事??

标签: c# model-view-controller selectlist


【解决方案1】:

尝试在他的文本上选择项目而不是值是不明智的

无论如何,您似乎有不止一项满足您的 if 语句

为确保只选择一项,您可以在满足条件时暂停 像这样:

if(item.Text == TextValue)
{
  item.Selected = true;
  break;
}

干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多