我想讓我的SelectList可觀察,以便ViewModel通過對該SelectList所做的更改進行更新。我看到在我的用戶界面中的下拉列表中顯示的值,但我從來沒有看到在ViewModel中更新的選定值,它始終爲空。我有更新沒有問題的窗體上的其他控件,所以我想知道如何,特別是使SelectList可見。看起來SelectLists和knockout與標準輸入控件有點不同。Make SelectList observable
我有一個類中的以下內容:
public string LocationId { get; set; }
public IEnumerable<SelectListItem> Locations { get; set; }
我有填充我的位置排列如下:
private PersonViewModel _viewModel;
public ActionResult Index()
{
var locations = new[]
{
new SelectListItem { Value = "US", Text = "United States" },
new SelectListItem { Value = "CA", Text = "Canada" },
new SelectListItem { Value = "MX", Text = "Mexico" },
};
_viewModel.Locations = locations;
return View(_viewModel);
}
我有以下的在我的標記:
<script type="text/javascript">
Person.ViewModel = ko.mapping.fromJS(@Html.Raw(Json.Encode(Model)));
var locationsArray = ko.observableArray(@Html.Raw(Json.Encode(Model.Locations)));
</script>
<form>
<table>
<tr>
<td>
Locations:
</td>
<td>
@Html.DropDownListFor(model => model.LocationId, new SelectList(Model.Locations, "Value", "Text"), new { id = "locationsArray" })
</td>
</tr>
</table>
</form>
有沒有你沒有使用@ Html.DropDownListFor的原因? – Mich