2009-03-17 3 views
0

Я пытаюсь написать простой метод расширения, который позволяет мне выбирать элемент в MVC SelectList по тексту, а не по значению.Метод расширения MVC

Это то, что я придумал, но хотя элемент задан как выбранный при отладке, возвращаемый SelectList имеет все его элементы с выбранным = false.

Любые идеи?

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

Можете ли вы показать, как вы доказываете, что все выбранные свойства по-прежнему являются ложными? Это из-за того, что вы видели на выходе пользовательского интерфейса или путем проверки объектов непосредственно в отладчике. Его трудно понять, как вы можете получить результат, который вы описываете. – AnthonyWJones

+0

Внутри if (item.Text == TextValue) {} элемент имеет выбранный атрибут, установленный в true, когда значения совпадают, но в общей коллекции в отладчике свойство объекта имеет значение false. Я не могу понять, что здесь происходит? – 2009-03-18 08:37:05

ответ

2

Это не разумно пытаться выбрать пункт своего текста вместо значения

во всяком случае, кажется, что у вас есть более чем один элемент, который удовлетворяет ваш, если заявление

для того, чтобы только один элемент будет выбран вы можете поставить паузу, когда вы встречаете состояние как это:

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

приветствий

Смежные вопросы