简单的 @helper 方法应用场景

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

  在我们定义@helper方法之前的代码

  让我们看一个简单的产品列表应用场景。在此场景中,我们列出产品明细并输出产品的价格或是单词“免费!”——如果这个产品不花费任何成本的话:

  以上代码非常直截了当,而且Razor的语法使得在HTML里能简单地集成服务器端C#代码。

  

  在多视图模式中重用@helper

  在上面的实例中,我们只是在1个视图中定义了@helper方法,所以它只能再当前视图中使用。

  然而,我们可以将@helper方法定义在视图模板外,让项目的所有视图都可以重复使用。

  您可以在.cshtml/.vbhtml保存我们的@helper方法,并把这个文件放在项目根目录下创建的\App_Code目录下例如,我在\App_Code文件夹中创建了一个“ScottGu.cshtml”文件,并且在文件中定义了2个单独的帮助器方法:

  一旦我们的帮助器定义在应用程序级别,我们就可以在应用程序的任何视图模板中使用它们。

  在上面的\App_Code文件夹中的ScottGu.cshtml会逻辑编译为一个称为“ScottGu”的类。这个类中包含了“DisplayPrice” 和 “AnotherHelper”的静态成员。我们可以使用以下代码重写前面的示例来调用它:

  当像如下方法调用应用程序级别帮助器时,VS将会提供智能感知代码:

  有一个问题:当一个@helper保存在\app_code目录中时,默认情况下您不能访问其中的ASP.NET MVC Html帮助器方法。(例如Html.ActionLink(), Html.TextBox()等等)。而当它们定义在与视图相同的文件夹中,您是可以访问内置HTML帮助器方法的。当帮助器位于\app_code目录下时,确实当下是不支持内置HTML帮助器方法的访问的。

  总结

  Razor的@helper语法提供了一种简便的方法来将呈现功能封装到帮助方法中去。您可以在单个视图模板或整个项目的所有视图模板中重用它。

原文地址:http://www.cnblogs.com/webapi/p/5669033.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关

ASP.NET MVC @helper使用说明相关推荐

  1. 发现几个常用的asp.net MVC Helper 源码

    AspNetMvc.DbC.zip XmlSiteMap.zip  XhtmlHelper.zip  TreeView.zip  QuickMenu.zip  Rotator_v1-1.zip  RS ...

  2. (转)[翻译] ASP.NET MVC Tip #1 - 使用扩展方法创建新的HTML Helper

    原文地址:http://weblogs.asp.net/stephenwalther/archive/2008/06/13/asp-net-mvc-tip-1-creating-new-html-he ...

  3. ASP.NET MVC:@helper 不能调试

    ASP.NET MVC 的 @helper 不能设置断点,当然我们可以将逻辑移动到扩展方法中,这里介绍另外一种方式,使用:System.Diagnostics.Debug.WriteLine,编程旅途 ...

  4. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化 【转】

    凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...

  5. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化

    凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...

  6. asp.net html helper,6. ASP.NET MVC 5.0 中的HTML Helper【HTML 帮助类】

    这篇文章,我将带领大家学习HTML Helper.[PS:上一篇-->5.ASP.NET MVC 中的Area[区域]是什么] HTML Helpers是用来创建HTML标签进而创建HTML控件 ...

  7. ASP.NET MVC Pager Helper Extensions

    正在做一个基本于MVC的项目,要用到分页,于是花了点时间,自已写了一个! 功能和效果和http://www.cnblogs.com/的完全一样,呵呵! 比cnblogs的多了一点点小东西,可以输入分页 ...

  8. asp.net MVC之 自定义过滤器(Filter)

    一.系统过滤器使用说明 1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为 ...

  9. 我要学ASP.NET MVC 3.0(一): MVC 3.0 的新特性

    摘要 MVC经过其1.0和2.0版本的发展,现在已经到了3.0的领军时代,随着技术的不断改进,MVC也越来越成熟.使开发也变得简洁人性化艺术化. 园子里有很多大鸟都对MVC了如指掌,面对问题犹同孙悟空 ...

最新文章

  1. burpsuite 设置https_新手教程:如何使用Burpsuite抓取手机APP的HTTPS数据
  2. poj - 3786 Repeater
  3. 傅里叶变换中的狄利克雷条件
  4. Altium Designer隐藏或显示元件名字
  5. 运行gulp项目报错:AssertionError: Task function must be specified。
  6. selenium环境搭建
  7. 繁体简体转换器 v 1.0
  8. 关于Shell的一些常用命令
  9. VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”
  10. python学生管理系统(函数方法)_(python函数)学生管理系统
  11. django 运行python manage.py sqlall books 时报错 app has migration
  12. Android Camera 3D效果
  13. VNC服务的使用和使用qemu-img工具创建更多格式的磁盘映像文件
  14. 性能评测|影驰RTX4090金属大师系列显卡正式发售!
  15. 如何把多个PDF页面合并成一页PDF - PDF页面合并器使用方法
  16. 一种新型智慧停车场车位占用监测模块
  17. 高并发数据缓存池(基于EHcache)
  18. wsl2 安装 Centos8
  19. iOS 通讯录-获取联系人属性
  20. Word VBA自动排版(2)-通过自动查找替换去除叠字

热门文章

  1. 链表笔试题汇编(一)
  2. 利用“多说”制作留言板、评论系统
  3. 手游开发者交流会议暨OGEngine新版发布
  4. Locations Section of OpenCascade BRep
  5. cacti+nagios 整合遇到的问题
  6. 51CTO下载专题有奖征集建议:您的期待,我们的方向!
  7. 测试Live Write的插件
  8. .NET 7 预览版 2 已发布,NativeAOT 正式可用
  9. EF Core 6 简化的数据库上下文注册
  10. 在asp.net core 下定义统一的入参和出参格式