2012-05-01 4 views
1

Я думаю, что нашел ошибку в knockout.js в сочетании с выпадающим списком asp.net mvc. При поставке только списка строк MVC не отображает значения опций в элементе select. Из-за этого Knockout.js не будет обновлять значение. Если я использую второй html-фрагмент ниже, явно указывая свойства, он работает. Должно ли notockout.js читать внутренний html, если значение параметра недоступно?knockout.js не работает, когда в списке выбора нет опций

не модифицирует

@Html.DropDownListFor(m => m.Grade, new SelectList((IEnumerable<string>)ViewData[Config.ViewData.Grades], Model.Grade), new { data_bind = "value: selectedGrade" }) 

Обновления

@Html.DropDownListFor(m => m.Grade, new SelectList(((IEnumerable<string>)ViewData[Config.ViewData.Grades]).Select(q => new { Text = q, Value = q }), "Value", "Text", Model.Grade), new { data_bind = "value: selectedGrade" }) 

Первый выпадающий оказывает

<select> 
<option>K</option> 
<option>2</option> 
<option>3</option> 
</option> 

Второй выпадающий оказывает

<select> 
<option value="K">K</option> 
<option value="2">2</option> 
<option value="3">3</option> 
</option> 
+0

В вашем * Не обновляется * фрагмент, появляется ли раскрывающийся список? Я был бы удивлен, что это не вызывает ошибки. Я не думаю, что вы можете просто преобразовать список строк в список элементов списка, не помогая компилятору, как вы это делали в фрагменте * Updates *. – arb

+0

Да, да, у вариантов нет значений. –

ответ

2

Я бы назвал это ошибкой. Пожалуйста, откройте вопрос о Github: https://github.com/SteveSanderson/knockout/issues

+1

Похоже, это будет исправлено в 2.2, https://github.com/SteveSanderson/knockout/commit/98ba90f264afe892499357ad256d9aaae2544aee. Спасибо, Майкл. –

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