使用RouteValueDictionary简化对Asp.net MVC Helper的扩展
来源:互联网 发布:局部二值模式算法 编辑:程序博客网 时间:2024/05/19 05:03
Asp.net MVC中提供的大量的Helper,比如下面的Helper:
public static string ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, object htmlAttributes)
实际开发中我们也不可避免对Helper进行扩展,比如扩展一个 Link 方法 (MVC本身只提供了ActionLink与RouteLink,对最普通的Link没有扩展)
public static string Link(this HtmlHelper htmlHelper, string linkText, string linkHref, object htmlAttributes)
{
.
}
{
.
}
这里面有个 htmlAttribute ,在C#3.0中就是所谓的“匿名类型”,它可以允许用户调用此方法时这样写:
<%=Html.Link("CaraQ","http://www.caraq.com",new {@class="home",target="_blank"}) %>
那么在Link方法中如何知道用户到底指定了哪些html属性、值呢?
经过查看MVC源码发现它是使用了一个RouteValueDictionary类,这个类在System.Web.Routing组件中定义的,所以可以如下方式获得用户指定的html属性值:
public static string Link(this HtmlHelper htmlHelper, string linkText, string linkHref, object htmlAttributes){ string reval = "<a href=\"{0}\" {1}>{2}</a>"; StringBuilder builder = new StringBuilder(); foreach(var item in new RouteValueDictionary(htmlAttributes)) { builder.Append(item.Key + "=\"" + item.Value + "\" "); } return string.Format(reval,linkHref,builder.ToString(),linkText);}
- 使用RouteValueDictionary简化对Asp.net MVC Helper的扩展
- [ASP.NET MVC]通过对HtmlHelper扩展简化“列表控件”的绑定
- ASP.NET中RouteValueDictionary的一点理解
- ASP.NET MVC Helper Method
- ASP.NET MVC @helper使用说明
- Asp.net Mvc Framework 八 (Helper)
- Asp.net mvc 创建自定义HTML Helper
- Asp.net Mvc Framework 八 (Helper)
- ASP.NET MVC 了解 HTML Helper
- Asp.Net MVC 学习心得 之 Html Helper
- ASP.NET MVC控件辅助工具(Helper)
- Asp.net Mvc Framework 十一 (自定义Helper在MVC中的使用)
- Asp.net Mvc Framework 十一 (自定义Helper在MVC中的使用)
- 13个 ASP.NET MVC 的扩展
- 使用@Page指令的Src属性简化对老版本的asp.net程序的维护
- ASP.NET mvc 在视图中使用@helper封装输出代码
- ASP.NET Atlas对JavaScript的扩展
- ASP.NET Atlas对JavaScript的扩展
- 用block 代替类继承实现方法的多态性重构技巧分享
- java1.5新特性:静态导入import static
- BaseSDK和DeploymentTarget
- ASP.NET MVC 利用ActionFilterAttribute来判断用户是否登陆等等
- 让SecureCRT vi中显示多色彩
- 使用RouteValueDictionary简化对Asp.net MVC Helper的扩展
- ajax请求错误的查看
- 导入Excel数据时对数据校验提示方法
- Q3-校门外的树做题总结
- oracle Constraint
- 利用Nginx实现动静分离和负载均衡
- android中u盘的多分区及hub的支持
- SQLSERVER复制与订阅的设置步骤
- 添加一行记录的示例