2

有没有办法将一个 dll 从一个类项目(或者可能是另一个 Web 应用程序项目)导入一个 Web 应用程序项目并重用 @helper?如果无法实现,使用 Razor 的 Web 应用程序的可重用性似乎几乎为零。

4

1 回答 1

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>
    
于 2013-04-06T23:11:50.017 回答