2012-05-01 10 views
1

asp.net MVCドロップダウンリストと組み合わせてknockout.jsにバグが見つかりました。文字列のリストだけを指定すると、MVCはselect要素のオプション値を表示しません。このため、Knockout.jsは値を更新しません。下の2番目のHTMLスニペットを明示的にプロパティに伝えて使用すると、それは機能します。オプション値が利用できない場合、knockout.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> 

をレンダリングを更新しません2番目のドロップダウンが

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

※* Update *スニペットでは、ドロップダウンリストも表示されますか?私はそれがエラーを生成しないことに驚くだろう。私はあなたが* Updates *スニペットのようにコンパイラを助けることなく、文字列のリストを選択リスト項目のリストに変換することはできないと思います。 – arb

+0

はい、オプションは値を持っていません。 –

答えて

2

をレンダリング私はバグそれを呼び出すと思います。 Githubに関する問題を開封してください:https://github.com/SteveSanderson/knockout/issues

+1

これは2.2、https://github.com/SteveSanderson/knockout/commit/98ba90f264afe892499357ad256d9aaae2544aeeで修正される予定です。ありがとうマイケル。 –

関連する問題