从Class Project导入Razor @helper

时间:2013-04-06 21:54:47

标签: c# asp.net razor razor-2

有没有办法将类项目(或者其他Web应用程序项目)中的dll导入Web应用程序项目并重用@helper?如果无法实现,那么使用Razor的Web应用程序的可重用性似乎几乎为零。

1 个答案:

答案 0 :(得分:3)

你可以做到,但你必须跳过几个圈。

  1. 您需要获取RazorGenerator:“这是Visual Studio的自定义工具,允许在设计时而不是运行时处理Razor文件,允许将它们构建到程序集中,以便更简单地重用和分发。“

  2. 使用RazorGenerator,您可以在类库项目中创建声明helper函数的.cshtml文件。例如,在名为Foo.cshtml的文件中:

    @helper MyHelper(string parameter) {<text>@parameter</text>}
    
  3. 这些助手将作为表示.cshtml文件的静态类中的静态方法存在。在上面的示例中,这将转换为Foo.MyHelper

  4. 您可以像使用任何其他静态方法一样从Web应用程序的.cshtml文件中调用这些静态方法。 (假设您已添加正确的using指令以指向包含帮助程序的命名空间。)例如:

    <div>@Foo.MyHelper("hello world")</div>