1

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>
4

1 に答える 1

2

私はそれをバグと呼んでいます。Github で問題を開いてください: https://github.com/SteveSanderson/knockout/issues

于 2012-05-01T21:20:20.107 に答える