1

我想我在与 asp.net mvc 下拉列表结合使用的 knockout.js 中发现了一个错误。当仅提供字符串列表时,MVC 不会在选择元素上呈现选项值。因此,Knockout.js 不会更新该值。如果我通过明确告诉它属性来使用下面的第二个 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>

第二个下拉列表呈现

<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 回答