从类项目中导入Razor @helper

本文关键字:Razor @helper 导入 项目 | 更新日期: 2023-09-27 18:07:43

是否有办法从类项目(或另一个web应用程序项目)导入dll到web应用程序项目并重用@helper?如果不能实现这一点,Razor的web应用程序的可重用性几乎为零。

从类项目中导入Razor @helper

你可以这样做,但是你必须经过几个环节。

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

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

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

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

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