標籤:style blog color os io art for re
1. 擴充代碼機構
namespace System.Web.Mvc.Html{ public static class FormExtensions//表單相關擴充方法,例如建立表單標籤等。 public static class InputExtensions//這裡包含了所有input,例如:text,button,readiobutton等等。 public static class LinkExtensions//連結相關方法 public class MvcForm : IDisposable//與用戶端控制項無關 public static class RenderPartialExtensions//這是輸出PartialView public static class SelectExtensions//輸出下拉框 public static class TextAreaExtensions//輸出多行文字框 public static class ValidationExtensions//輸出相關表單元素驗證。}
2. TagBuilder 結構
// Methods public TagBuilder(string tagName); public void AddCssClass(string value);//增加樣式 public void GenerateId(string name);//設定控制項ID private string GetAttributesString(); public void MergeAttribute(string key, string value);//設定屬性值 public void MergeAttribute(string key, string value, bool replaceExisting); public void MergeAttributes<TKey, TValue>(IDictionary<TKey, TValue> attributes); public void MergeAttributes<TKey, TValue>(IDictionary<TKey, TValue> attributes, bool replaceExisting); public void SetInnerText(string innerText);//設定顯示文本 public override string ToString(); public string ToString(TagRenderMode renderMode);//輸出控制項html
3. 樣本: Html.Image(...)
public static class ImageHelper{ public static string Image(this HtmlHelper helper, string id, string url, string alternateText) { return Image(helper, id, url, alternateText, null); } public static string Image(this HtmlHelper helper, string id, string url, string alternateText, object htmlAttributes) { // 建立IMG標籤 var builder = new TagBuilder("img"); // 增加ID屬性 builder.GenerateId(id); // 增加屬性 builder.MergeAttribute("src", url); builder.MergeAttribute("alt", alternateText); builder.MergeAttributes(new RouteValueDictionary(htmlAttributes)); // 輸出完整的img標籤 return builder.ToString(TagRenderMode.SelfClosing); }}