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