2017-03-20 15 views
-1

我有一個包含有選擇多個下拉菜單像常用函數生成多個視圖頁面

<option>1<option> 
<option>2<option> 
<option>3<option> 

<option>-5<option> 
<option>-6<option> 
<option>-7<option> 

所以我有一個函數創建生成頁面上下拉剃刀視圖中的下拉選項。

@functions { 
     public List<SelectListItem> GenerateDropDown(int startvalue, int endValue) 
     { 
      var dropDownList = new List<SelectListItem>(); 
      for (int i = startvalue; i <= endValue; i++) 
      { 
       string val = i.ToString(); 
       dropDownList.Add(new SelectListItem { Text = val, Value = val }); 
      } 
      return dropDownList; 
     } 
} 

和使用這樣

@Html.DropDownListFor(m => m.xyz, GenerateDropDown(1, 10)) 
@Html.DropDownListFor(m => m.Abc, GenerateDropDown(2, 20)) 

這項工作很好,但我想使用相同的功能與出代碼重複多頁我嘗試使用的輔助方法,但沒有用任何一個可以建議我如何集中GenerateDropDown函數。

回答

1

創建靜態類,其中包含靜態方法GenerateDropDown。

比方說

 public static class GeneratorHelper{ 

     public static List<SelectListItem> GenerateDropDown(int startvalue, int endValue) 
      { 
       var dropDownList = new List<SelectListItem>(); 
       for (int i = startvalue; i <= endValue; i++) 
       { 
        string val = i.ToString(); 
        dropDownList.Add(new SelectListItem { Text = val, Value = val }); 
       } 
       return dropDownList; 
      } 
     } 

現在在剃刀你只需要使用類爲:

GeneratorHelper.GenerateDropDown(1,5); 
+0

@Achillius感謝我裝箱助手類,而不是對類的靜態,改成了現在的作品精細 –