在asp.net mvc 中每一個(gè)Html控件都返回了MvcHtmlString ,他繼承了HtmlString。
下面自定義一個(gè)關(guān)于顯示男女性別的自定義Html控件,使在創(chuàng )建頁(yè)面時(shí),可以直接調用該自定義的Html控件。
可以查看其他的Html控件返回的是HtmlHelper,所以自定義的時(shí)候也要返回相同的類(lèi)型
直接在Controls文件夾下建立要自定義的html控件
代碼如下:
- using System.Text;
-
- namespace System.Web.Mvc.Html
- {
-
-
-
- public static class LabelGenderExtensions
- {
-
-
-
-
-
-
- public static MvcHtmlString LabelGender(this HtmlHelper helper)
- {
- StringBuilder str = new StringBuilder();
- str.Append("<input type='radio' name='sex' value=1 checked='checked'></input>");
- str.AppendFormat("<label for='{0}'>{1}</label>", "man", "男");
- str.Append("<input type='radio' name='sex' value=2 ></input>");
- str.AppendFormat("<label for='{0}'>{1}</label>", "female", "女");
- return new MvcHtmlString(str.ToString());
- }
- }
- }
此類(lèi)要返回的value值也可以根據參數的方式傳入
在頁(yè)面中只需調用: @Html.LabelGender()
顯示如圖:
注意事項:
1、注意創(chuàng )建類(lèi)的命名空間要與本身的@Html保持一致
2、創(chuàng )建的類(lèi)須為靜態(tài)類(lèi),命名規則一般后綴為Extensions
能對HtmlHelper控件進(jìn)行擴展,為建立自己的html標簽提供了很大的方便。