代码改变世界

MVC Helper Methods

2016-01-05 21:28  FelixShen  阅读(717)  评论(0编辑  收藏  举报
在.net MVC中经常会见到特别的写法
这些 写法就是我们这里要讲的  Helper Methods 帮助方法,他们帮助干什么呢,也就是他们的主要用途在哪里呢?
他们主要用于在一定的逻辑下 生成html标签 ,以及代码。

内嵌式的helper methods
     上面的这些helper methods是mvc框架内建的一些帮助方法,我们也可以创建我们自己的帮助方法,创建的方式分为两类:
内嵌式的外部形式的。
创建内嵌式的写法如下
看上去和普通的C#方法很相似,但有一点不一样,内嵌helper methods是不存在返回值的,他们直接输出标签结果到response流中。
使用的时候同样也很简单
这样子的话输出结果就会被加粗输出来了,使用helper Methods的好处在于可以免去在view页面上存在许多重复的标签 和代码。
我个人是很不喜欢的,我宁愿多写点标签,而不愿意去浪费这个这个脑容量,但是看到这写写法还是要认识的。
 

外部Helper Methods
     外部的帮助方法就是扩展 框架中的HtmlHelper类以及其他helper类 返回 MVCHtmlString 再由框架自行解析,也就是针对这些类编写的一些扩展方法。
     public static class CustomHelpers
    {
        public static MvcHtmlString ListArrayItems(this HtmlHelper html,  string[] list)
        {
            TagBuilder tag = new TagBuilder ("ul" );
            foreach (string str in list)
            {
                TagBuilder itemTag = new TagBuilder ("li" );
                itemTag.SetInnerText(str);
                tag.InnerHtml += itemTag.ToString();
            }
            return new MvcHtmlString (tag.ToString());
        }
    }
这里是通过TagBuilder来拼接html串,最后 返回一个MVCHtmlString对象即可。
使用的时候 @using添加一下引用就可以用了 @Html.ListArrayItems((string[])ViewBag.Fruits)
同样很简单,这个貌似相比内嵌式的helper还是蛮有用的。

这里就暂时介绍下 .net mvc helper Methods的基础由来。
 
喜欢的话就推荐一下吧,谢谢n(*≧▽≦*)n