2017-03-20 8 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 덕분에 내가 도우미 클래스가 아닌 클래스 정적으로 만든 상자에 포장, 그것은 지금 작동 변경 벌금 –