ASP.NET MVC HtmlHelper 확장 방법

1.ASP.NET 확장 방법 3 요소
(1)정적 클래스
아래 그림 에서 알 수 있 듯 이 InputExtension 은 먼저 정적 클래스 이다.
(2)정적 방법
정적 클래스 인 이상 모든 방법 은 정적 방법 일 것 입 니 다.예 를 들 어 Public static MvcHtmlString CheckBox();
(3),this 키워드
방법 명 정의 에서 알 수 있 듯 이 첫 번 째 매개 변 수 는 모두 this HtmlHelper htmlHelper 로 HtmlHelper 류 에 대한 확장 을 대표 합 니 다.
MVC  HtmlHelper 확장 인 스 턴 스 확장 절 차 를 간단하게 설명 합 니 다.
인 스 턴 스 1,확장 제출

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace TestMvcHelper
{
  public static class HtmlExtensions
  {
    public static MvcHtmlString Submit(this HtmlHelper helper, string value)
    {
      var builder = new TagBuilder("input"); //            input
      builder.MergeAttribute("type", "submit"); //     type="submit"
      builder.MergeAttribute("value", value);
      return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing)); 
    }
  }
}
상술 한 실례 설명
(1),TagBuilder 를 사용 하려 면 네 임 스페이스 System.Web.Mvc 를 도입 해 야 합 니 다.
(2),Submit 방법 명 은 보기 에서 호출 된 이름 입 니 다.(예:@Html.Submit("제출")
(3)、this HtmlHelper
helper 는 Submit 방법 을 HtmlHelper 에 추가 합 니 다.value 는 제출 단추 에 있 는 텍스트 입 니 다.
(4)、var builder = new TagBuilder("input");     
탭 이름 을 input 으로 설정 합 니 다.
(5)、builder.MergeAttribute("type", "submit")  
탭 속성 type="submit"을 설정 합 니 다.
(6)、builder.MergeAttribute("value", value);     
탭 제출 단추 Value 값 을 설정 합 니 다.
(7)、TagRenderMode.SelfClosing                    
끝 표시(예 를 들 어)모드 를 표시 합 니 다.
(8),TagRenderMode 는 매 거 진 유형 으로 각각
Normal(정상 텍스트 를 보 여 주 는 모드 표시)
StartTag(시작 표시(예:)모드 표시)
EndTag(종료 표시(예:
)모드 를 표시 합 니 다)
SelfClosing(예 를 들 어)모드 를 보 여 주 는 데 사 용 됩 니 다.
(9),MvcHtmlString 을 반환 값 으로 하 는 것 은 반환 값 이 전의 되 지 않도록 하기 위 한 것 입 니 다.예 를 들 어'<'는'<'로 바 뀌 지 않 습 니 다.
View 에서 호출 됨

@Html.Submit("  ")
인 스 턴 스 2,확장 하이퍼링크

http://www.CodeHighlighter.com/--> 1 /// <summary>
///           
/// </summary>
/// <param name="htmlHelper">    HtmlHelper </param>
/// <param name="title">  </param>
/// <param name="url">    </param>
/// <param name="description">  </param>
/// <returns>HTML  </returns>
public static MvcHtmlString LinkWithDescription(this HtmlHelper htmlHelper, string title, string url, string description)
{
  //           HTML  
  TagBuilder titleContainer = new TagBuilder("p");  //       p
  TagBuilder titleLink = new TagBuilder("a");  //           ,     a   
  titleLink.MergeAttribute("href", url);  //  a  href         
  titleLink.SetInnerText(title);  //     
  titleContainer.InnerHtml = titleLink.ToString();  //  a  p 
  titleContainer.AddCssClass("LinkTitle");  //        

  //           HTML  
  TagBuilder descriptionContainer = new TagBuilder("p");  //       p
  descriptionContainer.InnerHtml = description;  //     
  descriptionContainer.AddCssClass("LinkDescription");  //        

  //          DIV 
  TagBuilder div = new TagBuilder("div");
  div.InnerHtml = string.Format("{0}{1}", titleContainer.ToString(), descriptionContainer.ToString());

  //      HTML  
  return MvcHtmlString.Create(div.ToString());
}
보기 에서 호출
@Html.LinkWithDescription("테스트 링크 1", "#", "이것 은 테스트 링크 1 의 설명 입 니 다")

좋은 웹페이지 즐겨찾기