Несколько выпадающих списков из одного списка выбора asp.net mvc

Я только что столкнулся с проблемой, которую никогда раньше не замечал, и я хочу знать, является ли это чем-то изолированным от моего текущего проекта по какой-либо причине или это проблема, из-за которой мне нужно паниковать, проверять каждое из моих приложений и исправлять сразу.

У меня есть два раскрывающихся списка на одной странице с использованием одного и того же списка выбора.

бывший. HomeCity и CurrentCity относятся к одному и тому же списку городов. Следовательно, в коде оба заполнены одним и тем же IEnumerable<selectListItem>

Оказывается, что если второе значение на странице равно нулю (в модели представления), то вместо значения по умолчанию optionLabel оно по умолчанию равно первому значению.

Эта проблема очень раздражает, когда (как я часто это делаю) вы пытаетесь кэшировать SelectList. Мало того, что следующий элемент на той же странице имеет неправильное значение, но и выбранный элемент изменяется в кеше (что так странно, потому что вы можете представить, что кеш сериализует значения и дает вам копию.

Так что у меня двоякий вопрос.

  1. это обычная функциональность или я как-то спровоцировал это странное поведение?
  2. Какой рекомендуемый способ избежать этого? Нужно ли мне делать глубокий клон моего списка выбора между раскрывающимися списками?

person Rabbi    schedule 30.05.2013    source источник
comment
Был бы полезен пример кода ... Как вы генерируете свои экземпляры SelectList? Вы используете ViewBag или нет? Как вы привязываетесь к модели и какую модель используете (нужен код)?   -  person Marko    schedule 31.05.2013
comment
Как говорит @Marko, это звучит как потенциальная проблема с тем, как вы привязываете свои списки SelectLists, но это невозможно узнать, не увидев вашего кода.   -  person Ant P    schedule 31.05.2013
comment
Как вы решили эту проблему?   -  person Purusartha    schedule 29.05.2014
comment
Я кэшировал значения, но создал новый список выбора для каждого раскрывающегося списка.   -  person Rabbi    schedule 30.05.2014