在.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

MVC Helper Methods的更多相关文章

  1. Templated Helper Methods

    1.Model 2.HomeController 3.CreatePerson.cshtml 禁用了客户端验证 4.Using Templated Helper Methods Editor 和 Ed ...

  2. Creating Custom Helper Methods 创建自定义辅助器方法----辅助器方法 ------ 精通ASP.NET MVC 5

    创建内联的辅助器方法 和 拓展方法 好像类似的功能. 不过写在前台更直观

  3. asp.net MVC helper 和自定义函数@functions小结

    asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...

  4. MVC @helper (转载)

    转载地址:http://gaoling386.blog.163.com/blog/static/5404602420130595842894/ ASP.NET MVC 3支持一项名为“Razor”的新 ...

  5. ASP.NET MVC @helper使用说明

    简单的 @helper 方法应用场景 Razor中的@helper语法让您能够轻松创建可重用的方法,此方法可以在您的视图模板中封装输出功能.他们使代码能更好地重用,也使代码更具有可读性. 在我们定义@ ...

  6. [转]asp.net MVC helper 和自定义函数@functions小结

    本文转自:http://www.cnblogs.com/jiagoushi/p/3904995.html asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的 ...

  7. mvc @helper 创建用户自定义html

    转载地址:https://www.cnblogs.com/caofangsheng/p/5670071.html

  8. URL and Ajax Helper Methods

      1.Unobtrusive Ajax

  9. Templated Helper Methods(二)

      1.Label and Display Elements   2.Whole-Model Templated Helpers     3.Using Metadata to Control Edi ...

随机推荐

  1. 31_网络编程-struct

    一.struct   1.简述  我们可以借助一个模块,这个模块可以把要发送的数据长度转换成固定长度的字节.这样客户端每次接收消息之前只要先接受这个固定长度字节的内容看一看接下来要接收的信息大小,那么 ...

  2. C++ 执行Windows cmd命令

    #include <windows.h> #include <iostream> #include <cstdio> using namespace std; vo ...

  3. Spring Boot切换为APR模式

    Spring Boot内置了tomcat容器,直接运行Application就可以启动web服务器. 在tomcat中提供了三种方式:BIO.NIO.APR. BIO tomcat7以下的版本都是BI ...

  4. Swift5 语言参考(一) 关于语言参考

    本系列文章的这一部分描述了Swift编程语言的形式语法.此处描述的语法旨在帮助您更详细地理解语言,而不是允许您直接实现解析器或编译器. Swift语言相对较小,因为Swift代码中几乎无处不在的许多常 ...

  5. JAVA多线程下载

    package com.jan.test; import java.io.File; import java.io.IOException; import java.io.RandomAccessFi ...

  6. 移动一根火柴使等式成立js版本(递归)

    修改成递归版本 思路: 1.设定规则数组,比如:1加一根火柴只可以变成7. 2.设定方法数组,比如:一个数增加了一根火柴,其他的数必然减少一根火柴. 3.增加Array方法,由元素名和方法,得到规则对 ...

  7. POJ 2887

    #include <iostream> #include <string> #define MAXN 2000 using namespace std; struct node ...

  8. MVC3学习:利用mvc3+ajax实现删除记录

    首先根据模板生成list视图,上面就会有一个delete的链接,但是模板自带的这种删除,需要另外再打开一个删除页,再进行删除.我们可以利用ajax来改写,实现在当前页删除. 在视图上面,将原来的 @H ...

  9. CDH 版本子节点启动问题

    今天下午整整为了启动一个节点瞎忙活一下午,惨痛的教训还是记录下来吧,毕竟付出了代价.事情原委,一个同事在一台机器上占用了大量内存训练CTR点击率模型,而这台机器上部署了分布式Hadoop的一个data ...

  10. python多线程-Semaphore(信号对象)

    Semaphore(value=1) Semaphore对象内部管理一个计数器,该计数器由每个acquire()调用递减,并由每个release()调用递增.计数器永远不会低于零,当acquire() ...