ASP.NET MVC 中枚舉生成下拉框

最近公司在開發財務系統,在工做中遇到很多的地方須要下拉框。ide

可是枚舉框中數據的內容又來自枚舉。ui

枚舉代碼以下:spa

 1 public class EnumDemo
 2     {
 3 
 4         public enum Value {
 5             First=1,
 6             Second=2
 7         }
 8         public enum Name
 9         {
10             我是第一 = 1,
11             我是第二 = 2
12         }
13 
14 
15 
16     }
View Code

我一看還挺簡單。code

因而第一次是這樣的:orm

1    <select>
2         <option value="1">我是第一</option>
3         <option value="2">我是第一</option>
4     </select>
View Code

效果是出來了,可是這樣的話,若是有七八個枚舉,每一個枚舉有七八個值,個人手還不寫廢掉嗎。blog

因而第二次頁面代碼以下:開發

 1     <select>
 2         @foreach (var item in Enum.GetValues(typeof(EnumDemo.Value)))
 3         {
 4             <option value="@((int)item)">
 5                 @((EnumDemo.Name)item)
 6             </option>
 7 
 8         }
 9 
10     </select>
View Code

看效果:博客

解釋一下,這裏typeof看不懂不要緊,知道這個typeof的結果是Type就行了, 正好Enum.GetValues()須要Type類型參數。看下圖的提示string

後面感受這樣用起來也麻煩(我的有點懶吧),因而想到能夠這樣:it

新建了一個幫助類:

 1         public static string CreatSelection<TValue,TName>()
 2         {
 3 
 4             StringBuilder stringBuilder = new StringBuilder();
 5 
 6             foreach (var item in System.Enum.GetValues(typeof(TValue)))
 7             {
 8                 stringBuilder.AppendFormat("<option value='{0}'>{1}</option>", (TName)item, (int)item);
 9             }
10             return stringBuilder.ToString();
11 
12         }
View Code

而後頁面代碼以下:

1     <select>
2         @(  Html.Raw(  WorkRecord.Enum.EnumHelper.CreatSelection<EnumDemo.Value,EnumDemo.Name>()  ) )
3     </select>
View Code

 效果以下:

雖然效果都是同樣的,可是你寫起來的感受絕對不同。

剛剛畢業的新手,若是大佬們能給些更好的意見,歡迎留言,謝謝!

也歡迎不懂的童鞋問我,加班晚上不在,不加班隨機在線,看見必定會回覆的!

本人也是剛剛畢業的學生,第一次寫博客,也不太懂規矩,講得也不太清楚,望見諒!

文章僅以此獻給不懂的同窗,與君共勉。

相關文章
相關標籤/搜索