ASP.NET MVC @helper使用说明
简单的 @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使用说明相关推荐
- 发现几个常用的asp.net MVC Helper 源码
AspNetMvc.DbC.zip XmlSiteMap.zip XhtmlHelper.zip TreeView.zip QuickMenu.zip Rotator_v1-1.zip RS ...
- (转)[翻译] 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 ...
- ASP.NET MVC:@helper 不能调试
ASP.NET MVC 的 @helper 不能设置断点,当然我们可以将逻辑移动到扩展方法中,这里介绍另外一种方式,使用:System.Diagnostics.Debug.WriteLine,编程旅途 ...
- ASP.NET MVC 重点教程一周年版 第八回 Helper之演化 【转】
凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...
- ASP.NET MVC 重点教程一周年版 第八回 Helper之演化
凡事出现必有原因 就像Filter,它是为了解决在一类的Action之前或之后执行统一的代码而产生的. 而Helper则是为了方便View的开发而产生的. 下面我们来解决几个问题,来看看Helper是 ...
- 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控件 ...
- ASP.NET MVC Pager Helper Extensions
正在做一个基本于MVC的项目,要用到分页,于是花了点时间,自已写了一个! 功能和效果和http://www.cnblogs.com/的完全一样,呵呵! 比cnblogs的多了一点点小东西,可以输入分页 ...
- asp.net MVC之 自定义过滤器(Filter)
一.系统过滤器使用说明 1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为 ...
- 我要学ASP.NET MVC 3.0(一): MVC 3.0 的新特性
摘要 MVC经过其1.0和2.0版本的发展,现在已经到了3.0的领军时代,随着技术的不断改进,MVC也越来越成熟.使开发也变得简洁人性化艺术化. 园子里有很多大鸟都对MVC了如指掌,面对问题犹同孙悟空 ...
最新文章
- burpsuite 设置https_新手教程:如何使用Burpsuite抓取手机APP的HTTPS数据
- poj - 3786 Repeater
- 傅里叶变换中的狄利克雷条件
- Altium Designer隐藏或显示元件名字
- 运行gulp项目报错:AssertionError: Task function must be specified。
- selenium环境搭建
- 繁体简体转换器 v 1.0
- 关于Shell的一些常用命令
- VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”
- python学生管理系统(函数方法)_(python函数)学生管理系统
- django 运行python manage.py sqlall books 时报错 app has migration
- Android Camera 3D效果
- VNC服务的使用和使用qemu-img工具创建更多格式的磁盘映像文件
- 性能评测|影驰RTX4090金属大师系列显卡正式发售!
- 如何把多个PDF页面合并成一页PDF - PDF页面合并器使用方法
- 一种新型智慧停车场车位占用监测模块
- 高并发数据缓存池(基于EHcache)
- wsl2 安装 Centos8
- iOS 通讯录-获取联系人属性
- Word VBA自动排版(2)-通过自动查找替换去除叠字