MVC为Html对象建立一个扩展方法,使用自己的控件就像使用TextBox一样方便

Posted 山涧清泉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC为Html对象建立一个扩展方法,使用自己的控件就像使用TextBox一样方便相关的知识,希望对你有一定的参考价值。

先看一下我想要的结果:

image

很容易它就是一个单选按钮组,当我后台为html对象(HtmlHelper的一个实例,它被定义在System.Web.Mvc名称空间下的WebViewPage类,即它对于所有MVC页面都可用)建立好扩展方法后,使用以下语句就可以生成上面的效果:

@Html.CreateGanderRadioButton()
扩展方法的定义:
namespace Web.Helper
{
    public static class ExtendHtml
    {
        public static MvcHtmlString CreateGanderRadioButton(this System.Web.Mvc.HtmlHelper html)
        {
            StringBuilder str = new StringBuilder();
            str.Append("<input type=\'radio\' value=1 name=\'gander\'>男");
            str.Append("<input type=\'radio\' value=0 name=\'gander\'>女");
            return MvcHtmlString.Create(str.ToString());
 
        }
    }
}
注意,它所在的类必须是public static的,也就是说,它的扩展方法本身也是public static的。
对于,直接在页面上使用我们的方法,还是差了一步,那就是,要在web.config里把Web.Helper名称
空间加上,页面上才能访问的到:
 <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages"/>
        <add namespace="Web.Helper" />
 </namespaces>

 

 

 

OK,现在一个Html对象的扩展方法就做好了,赶快去实践一个吧!

以上是关于MVC为Html对象建立一个扩展方法,使用自己的控件就像使用TextBox一样方便的主要内容,如果未能解决你的问题,请参考以下文章

python----面向对象

在 ASP.NET MVC 3 中添加您自己的 HtmlHelper

[Team]开发中的控场

mvc一个视图能不能使用两个模型类

有关MVC扩展方法MvcHtmlString的使用

MVC4.0 我使用用 HtmlHelper类的扩展方法 html 标签被转义,怎么处理?