zoukankan      html  css  js  c++  java
  • 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语法提供了一种简便的方法来将呈现功能封装到帮助方法中去。您可以在单个视图模板或整个项目的所有视图模板中重用它。

      但是,我个人还是喜欢在App_Code中新建类,然后在视图中使用,感觉这样爽,纯属于个人习惯,呵呵,大家自便。

  • 相关阅读:
    js 字符串操作函数
    loadscript加载
    jquery.cookie.js结合asp.net实现最近浏览记录
    .net 关于匿名类型的特性
    高级javaScript程序形成过程(进阶)
    javascript window.*
    Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解
    javascript prototype
    Jquery 中的CheckBox、 RadioButton、 DropDownList的取值赋值
    jquery笔记
  • 原文地址:https://www.cnblogs.com/webapi/p/5669033.html
Copyright © 2011-2022 走看看