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>