2012-02-15 3 views
1

커스텀 HTML 헬퍼를 빌드하고 서브 섹션에 넣을 수있는 방법이 있습니까? 예 :면도날이있는 면도기 HtmlHelpers?

@Html.Buttons.Gray 
@Html.Buttons.Blue 
@Html.Tables.2Columns 
@Html.Tables.3Columns 

감사합니다.

답변

1

헬퍼는 확장 메서드입니다. 따라서 메서드 호출을 체인화 할 수있는 객체를 반환하는 도우미를 만들 수 있습니다. @Html.Button("Text").Grey().

public ButtonHelper 
{ 
    public string Text {get; set;} 
    public MvcHtmlString Grey() 
    { 
     return MvcHtmlString.Create("<button class='grey'>"+ Text +"</button>"); 
    } 
} 

public static class Buttons 
{ 
    public static ButtonHelper Button(this HtmlHelper, string text) 
    { 
     return new ButtonHelper{Text = text}; 
    } 
} 
+0

훌륭한 작품! 고맙습니다. – Saxman

1

나는 그렇게 생각할 수 없다고 생각합니다. 열거를 만들고 다음과 같이 색상을 참조하는 것을 사용

public enum ButtonColor 
{ 
    Blue = 0x1B1BE0, 
    Gray = 0xBEBECC 
}; 

public static class Extensions 
{ 
    public static MvcHtmlString Button(this HtmlHelper htmlHelper, string Value, ButtonColor buttonColor) 
    { 
     string renderButton = 
      string.Format(
       @"<input type=""button"" value=""{0}"" style=""background-color: {1}"" />", 
       Value, 
       buttonColor.ToString() 
      ); 

     return MvcHtmlString.Create(renderButton); 
    } 
} 

당신은 테이블에 대한 물건의 동일한 유형을 할 수 있지만, 이것은 당신에게 일반적인 아이디어를 줄 것이다. 이는 일반적인 도우미 확장 메서드이지만 enum val을 매개 변수로 사용하여 원하는 최종 결과를 제공합니다.