在asp.net mvc 中每一個Html控件都返回了MvcHtmlString ,他繼承了HtmlString。
下面自定義一個關(guān)于顯示男女性別的自定義Html控件,使在創(chuàng)建頁面時,可以直接調(diào)用該自定義的Html控件。
可以查看其他的Html控件返回的是HtmlHelper,所以自定義的時候也要返回相同的類型
直接在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());
- }
- }
- }
此類要返回的value值也可以根據(jù)參數(shù)的方式傳入
在頁面中只需調(diào)用: @Html.LabelGender()
顯示如圖:
注意事項(xiàng):
1、注意創(chuàng)建類的命名空間要與本身的@Html保持一致
2、創(chuàng)建的類須為靜態(tài)類,命名規(guī)則一般后綴為Extensions
能對HtmlHelper控件進(jìn)行擴(kuò)展,為建立自己的html標(biāo)簽提供了很大的方便。