您的位置:首页 > Web前端 > HTML

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

2011-08-19 12:04 891 查看
先看一下我想要的结果:





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

@Html.CreateGanderRadioButton()



扩展方法的定义:


namespace Web.Helper


[code]{


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>

[/code]

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

OK,现在一个Html对象的扩展方法就做好了,赶快去实践一个吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐