前言 HtmlHelper方法為我們提供很多html標簽,只需在頁面調用就行了,但是微軟並沒有把所有的html標簽都對應有了擴展方法,需要我們重新自定義Htmlper,來滿足我們需要。 方法 上面代碼解讀: 在使用TagBuilder需要引入命名空間System.Web.Mvc。 Submit方法名 ...
前言
HtmlHelper方法為我們提供很多html標簽,只需在頁面調用就行了,但是微軟並沒有把所有的html標簽都對應有了擴展方法,需要我們重新自定義Htmlper,來滿足我們需要。
方法
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)); } } }
上面代碼解讀:
- 在使用TagBuilder需要引入命名空間System.Web.Mvc。
- Submit方法名是對應試圖中調用的名稱。 (如:@Html.Submit("提交") )
- this HtmlHelper helper 將Submit方法添加到HtmlHelper中,value是傳過來的提交按鈕上的文字。
- var builder = new TagBuilder("input"); 設置標簽名字設為input。
- builder.MergeAttribute("type", "submit") 設置標簽屬性type="submit"。
- builder.MergeAttribute("value", value); 設置標簽提交按鈕Value值。
- TagRenderMode.SelfClosing 表示用於呈現自結束標記(例如,<input />)的模式。
- TagRenderMode是個枚舉類,分別為 Normal(表示用於呈現正常文本的模式)、StartTag(表示用於呈現開始標記(例如,<tag>)的模式)、 EndTag(表示用於呈現結束標記(例如,</tag>)的模式)、 SelfClosing(表示用於呈現自結束標記(例如,<tag />)的模式)。
- MvcHtmlString作為返回值是為了使返回值不被轉義,比如"<"不會被轉成"<"。
View中寫入下麵代碼調用
@Html.Submit("提交")
生成效果預覽
<input type="submit" value="提交" />
本篇到此結束。HtmlHelper包含的東西比較多,還有一些東西沒有介紹,有時間我會繼續學習,如果大家有興趣我可以繼續拓展。歡迎討論。喜歡的話就推薦一下吧!