mvc中@helper的用法
mvc中@helper的用法
mvc中@helper的用法ASP.NET MVC 3支持一项名为“Razor”的新视图引擎选项(除了继续支持/加强现有的.aspx视图引擎外)。当编写一个视图模板时,Razor将所需的字符和击键数减少到最小,并保证一个快速、通畅的编码工作流。
与大部分模板的语法不同,在Razor的帮助下,您不需要中断代码编写,仅仅为了在HTML中标注服务器端代码块的开始和结束。代码分析器足够聪明,它能够从你的代码里推断出是否为服务器端代码。这种更加简洁、富有表现力的语法更加干净,输入也更快速,有趣。
下面简单介绍Razor中利用@helper语法定义重用的帮助器方法
Razor中的@helper语法让您能够轻松创建可重用的帮助器方法,此方法可以在您的视图模板中封装输出功能。他们使代码能更好地重用,也使代码更具有可读性。
@helper简单实例
在ASP.NET WebSite中,我们一般将公共的方法写到App_Code的类中去达到一种封装和复用。在MVC3中存在helper语法可以达到同样的目的。
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site。css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min。js")" type="text/javascript"></script>
</head>
head部分对Css和Script文件的引用,其中Url.Content()将相对路径转为应用程序的绝对路径,和Server.MapPath()类似。
2、使用helper语法如下
@Css("Site.css")
@Script("jquery-1.5.1.min。js")
@helper Script(string scriptName)
{
<script src="@Url.Content("~/Scripts/" + scriptName)" type="text/javascript"></script>
}
@helper Css(string cssName)
{
<link href="@Url.Content("~/Content/"+cssName)" rel="stylesheet" type="text/css" />
}
3、在项目下新建app_code文件夹
在app_code中新建一个视图文件Content.cshtml,删除里面的Code,并将原Layout.cshtml中的helper部分复制到Content.cshtml下,这是发现Url缺少引用声明。添加@using System.Web.Mvc ,并添加一个的helper参数,如下:
@using System.Web.Mvc
@helper Script(string scriptName,UrlHelper Url)
{
<script src="@Url.Content("~/Scripts/" + scriptName)" type="text/javascript"></script>
}
@helper Css(string cssName, UrlHelper Url)
{
<link href="@Url.Content("~/Content/" + cssName)" rel="stylesheet" type="text/css" />
}
4、Layout.cshtml页面对Css和Scrpt引用
<head>
<title>@ViewBag.Title</title>
@Content.Css("Site.css", Url)
@Content.Script("jquery-1.5.1.min.js", Url)
</head>
热门推荐
- django表单提交到数据库(Django 表单模型选择框如何使用分组)
- mysql添加数据很慢(mysql如何优化插入记录速度)
- jQuery如何操作下拉框select
- Sql Server 更新锁
- mysql有哪些约束(MySQL完整性约束的定义与实例教程)
- html5播放器按菜单键没反应(解决HTML5中的audio在手机端和微信端的不能自动播放问题)
- html5菜单栏(html5写一个BUI折叠菜单插件的实现方法)
- 如何对python中列表中的数据运算(Python3.5集合及其常见运算实例详解)
- python的def命令参数(python ddt数据驱动最简实例代码)
- php抽象入门教程(php抽象方法和普通方法的区别点总结)