2009-07-16 85 views
2

嘗試創建一個選擇列表,並將第一個選項文本設置爲空字符串。作爲數據源,我有一個具有屬性「Key」&「Value」的GenericKeyValue類的列表。我目前的代碼如下。使用mvccontrib創建第一個選項文本的選擇列表?

   <%= this.Select(x => x.State).Options(ViewData[Constants.StateCountry.STATES] as IList<GenericKeyValue>, "Value", "Key").Selected(Model.State) %> 

這得到填補與各國的選擇列表,但我在這一點上的一個優雅的方式來獲得空字符串的第一個選項文本不確定。

+0

我一直在尋找與流暢的做法MVC的Contrib提供了實現這個目標,我知道這是可以做到使用默認的MVC下拉列表HTML助手。 – aherrick 2009-07-17 12:47:46

回答

2

「嘗試創建一個選擇列表,並將第一個選項文本設置爲空字符串。」的標準方法是不流利,但感覺就像較少的工作:在控制器和視圖

ViewData[Constants.StateCountry.STATES] = SelectList(myList, "Key", "Value"); 

​​
0

或者這...

你的觀點;

<%=Html.DropDownList("selectedState", Model.States)%> 

您的控制器;

public class MyFormViewModel 
{ 
    public SelectList States; 
} 

public ActionResult Index() 
{ 
    MyFormViewModel fvm = new MyFormViewModel(); 
    fvm.States = new SelectList(Enumerations.EnumToList<Enumerations.AustralianStates>(), "Value", "Key", "vic"); 

    return(fvm); 
} 
0

沒有擴展任何東西 - 你不能。

下面就是筆者說:

最後一點。 MvcFluentHtml的目標是將意見留給你。我們通過允許您定義自己的行爲來做到這一點。然而,這並非沒有關於實踐的意見。例如,Select對象沒有任何「第一選項」功能。這是因爲在我看來,添加選項並不是關注的問題。

編輯:
在另一方面 - 有在最新的源代碼,選擇「FirstOption」的方法。
通過svn下載MvcContrib,構建和使用。

1

當然可以,但你把它添加到你綁定到下拉列表...

List<State> list = _coreSqlRep.GetStateCollection().OrderBy(x => x.StateName).ToList(); 
list.Insert(0, new State { Code = "Select", Id = 0 }); 
ViewData["States"] = new SelectList(list, "Id", "StateName", index); 
+0

我實際上已經走下了這條路,感謝... – aherrick 2009-10-01 23:19:15

相關問題