您的位置:首页 > 编程学习 > ASP.NET > 正文

mvc中@helper的用法

更多 时间:2014-3-3 类别:编程学习 浏览量:882

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语法可以达到同样的目的。

 

  • 1、视图View下 Share文件夹中_Layout.cshtml
  •  
  •  
  • HTML 代码   复制
  • 
    <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语法如下

  •  
  • C# 代码   复制
  •     
        @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参数,如下:

  •  
  •  
  • C# 代码   复制
  • 
    
    @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引用

  •  
  • HTML 代码   复制
  • 
    
    <head>
    
        <title>@ViewBag.Title</title>
    
        @Content.Css("Site.css", Url)
    
        @Content.Script("jquery-1.5.1.min.js", Url)
    
    </head>
    
    		
  •  

     

    标签:@helper MVC Razor