您的位置:首页 > 编程语言 > ASP

ASP.NET MVC @helper使用说明

2016-03-02 11:57 573 查看
  简单的 @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中新建类,然后在视图中使用,感觉这样爽,纯属于个人习惯,呵呵,大家自便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: