在.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. 值不能为 null。 参数名: source

    今天调试程序总是报一个异常: 值不能为 null.参数名: source 异常详细信息: System.ArgumentNullException: 值不能为 null.参数名: source 通过断 ...

  2. 爬虫:Scrapy5 - 选择器Selectors

    当抓取网页时,常见的任务是从HTML源码中提取数据.现有的一些库可以达到这个目的: BeautifulSoup lxml Scrapy 提取数据有自己的一套机制.它们被称作选择器(seletors), ...

  3. UICollectionView设置首个cell默认选中

    设置UICollectionView中某个cell的默认选中,刚开始为追求性能,采用同一个cellId去标识UICollectionViewCell,却由于cell的重用会导致之前选中的cell在被重 ...

  4. sublime text3:提示 There are no packages available installation 解决方案

    纯属记录,下次能找到解决. 第一步: 在sublime Text3界面按 ctrl+` 出现一个输入框界面 第二步:在输入框输入: import urllib.request,os,hashlib; ...

  5. 【小程序开放激励视频】--wepy小程序添加激励视频

    小程序开放激励视频是对小程序开发者一个福音,小程序开发者可以完成一些变现,以增加收入! 本文章针对已经有开发经验或者正在进行小程序开发的同学~ 官方文档:激励视频广告 定义页面变量,用于创建视频实例 ...

  6. [Leetcode]495.提莫攻击

    题目: 在<英雄联盟>的世界中,有一个叫 "提莫" 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态.现在,给出提莫对艾希的攻击时间序列和提莫攻击的中 ...

  7. POJ 2840

    #include<iostream> #include<stdio.h> #include<string> using namespace std; int mai ...

  8. Vue.js项目引入less文件报错解决

    解决方案: 需要局部安装vue-style-loader,less-loader,css-loader,vue-loader和less包(需注意就算全局安装以上包仍需局部安装) 即:npm i vue ...

  9. win10 关闭屏幕自动亮度

    每次切换到vsCode,再切换回桌面,屏幕总是忽暗忽亮,这谁设计的,脑残至极! 百度了好久,终于找到解决办法: 控制面板→英特尔®核芯显卡→电源→使用电池→显示器节能技术→禁用→应用 如果你按上述步骤 ...

  10. JavaScript初探一

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...