在MVC3中,當使用DropDownListFor時,第一個參數是否必須是字符串?我有以下設置:MVC3 DropDownListFor未設置選定屬性
@Html.DropDownListFor(m => m.MyListItemId, Model.MyListItems,
new Dictionary<string, object>
{
{ "style", "width:120px" },
{ "data-type", "myList" }
})
其中m.MyId是我的viewmodel上的int。我遇到了一個問題,當我在下拉列表中更改所選項目並檢查呈現的html時,「selected」屬性未設置爲新選擇的項目。這是一個問題,因爲我使用jQuery的克隆功能來複制該行,我需要與新的選定項目列表複製到我的新行。想法?
更新 - 將viewmodel的屬性更改爲字符串沒有區別。 這是mvc dropdownlistfor的錯誤嗎?我在相似的問題上閱讀了不少文章,但似乎無法找到適用於此實例的解決方案。這是我的名單是如何設置在我的代碼:
var myListItems = _myRepository.GetAll();
model.MyListItems = new SelectList(myListItems, "Id", "Name", lineItem.myListItemId);
model.MyListItemId = lineItem.myListItemId;
其中LINEITEM傳入該方法
不知道我是否誤解了你的問題;但如果你用jQuery克隆克隆選擇列表,你需要重新選擇選項,查看問題[here](http://stackoverflow.com/questions/3776270/jquery-clone-doesnt-copy-select-dom -properties?answertab =最老)和[這裏](http://stackoverflow.com/questions/3861729/copy-clone-dropdown-list-with-selected-option-in-jquery)。 – pjumble
謝謝!我沒有意識到這一點!這可能有助於克隆,我現在會嘗試。我仍然好奇,爲什麼選擇新項目時爲什麼下拉列表選擇值在呈現的html中不會改變? –
這不是我真正想要的。我可以從上一行復制選定的值,但主要問題是最新的選定值沒有標記爲選中 –