커스텀 HTML 헬퍼를 빌드하고 서브 섹션에 넣을 수있는 방법이 있습니까? 예 :면도날이있는 면도기 HtmlHelpers?
@Html.Buttons.Gray
@Html.Buttons.Blue
@Html.Tables.2Columns
@Html.Tables.3Columns
감사합니다.
커스텀 HTML 헬퍼를 빌드하고 서브 섹션에 넣을 수있는 방법이 있습니까? 예 :면도날이있는 면도기 HtmlHelpers?
@Html.Buttons.Gray
@Html.Buttons.Blue
@Html.Tables.2Columns
@Html.Tables.3Columns
감사합니다.
헬퍼는 확장 메서드입니다. 따라서 메서드 호출을 체인화 할 수있는 객체를 반환하는 도우미를 만들 수 있습니다. @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};
}
}
나는 그렇게 생각할 수 없다고 생각합니다. 열거를 만들고 다음과 같이 색상을 참조하는 것을 사용
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을 매개 변수로 사용하여 원하는 최종 결과를 제공합니다.
당신이, 함수 인() 버튼을 피하기 사용자 정의 Html 헬퍼를 만들어이 같은 일을 수행하는 방법에 대한 http://haacked.com/archive/2011/02/21/changing-base-type-of-a-razor-view.aspx를 보려면 : @MyAppHtml.Buttons.Gray
이
당신은 대신에 대신하는 경우 Html 헬퍼 오버라이드 (override) 할 수있을 당신 엄격하게 원하는 @Html.Buttons.Gray
훌륭한 작품! 고맙습니다. – Saxman