有没有办法将类项目(或者其他Web应用程序项目)中的dll导入Web应用程序项目并重用@helper?如果无法实现,那么使用Razor的Web应用程序的可重用性似乎几乎为零。
答案 0 :(得分:3)
你可以做到,但你必须跳过几个圈。
您需要获取RazorGenerator:“这是Visual Studio的自定义工具,允许在设计时而不是运行时处理Razor文件,允许将它们构建到程序集中,以便更简单地重用和分发。“
使用RazorGenerator,您可以在类库项目中创建声明helper
函数的.cshtml文件。例如,在名为Foo.cshtml的文件中:
@helper MyHelper(string parameter) {<text>@parameter</text>}
这些助手将作为表示.cshtml文件的静态类中的静态方法存在。在上面的示例中,这将转换为Foo.MyHelper
。
您可以像使用任何其他静态方法一样从Web应用程序的.cshtml文件中调用这些静态方法。 (假设您已添加正确的using
指令以指向包含帮助程序的命名空间。)例如:
<div>@Foo.MyHelper("hello world")</div>