Я обнаружил странное поведение при использовании метода DropDownList в SelectExtension.Я создаю IEnumerable , где у одного из них свойство Selected установлено в значение true.Однако, когда я передаю его следующему методу, свойство Selected сбрасывается в значение «false», и поэтому в раскрывающемся списке элементов управления не выбран правильный элемент.
public static MvcHtmlString DropDownList (это HtmlHelper htmlHelper, имя строки, IEnumerable selectList);
Я даже пытался использовать класс SelectList и указал свойство SelectedValue, но все еще правильный тег
не выбирается.
Любые идеи о том, как я могу сохранить выбранное значение?
WROTE HACK, НО ПРЕДПОЧИТАЕТЕ РЕШЕНИЕ
Ниже приведенвзломать код, чтобы изменить выбранную опцию перед использованием испущенного HTML из MVC.Мне не нравится это решение, но я не знаю, как еще это сделать.
// the following is a hack due to a precived MVC 3 bug
var html = SelectExtensions.DropDownList(helper, propertyName, source).ToHtmlString();
html = html.Replace("selected=\"selected\"", string.Empty);
html = html.Replace(string.Format("value=\"{0}\"", source.SelectedValue), string.Format("value=\"{0}\" selected=\"selected\"", source.SelectedValue));