【发布时间】:2019-02-28 13:04:28
【问题描述】:
我正在使用 RazorEngine 构建电子邮件模板系统,并希望在与我的主模板不同的 cshtml 文件中维护辅助函数。例如,假设我有一个这样的文件夹结构:
/Templates
Support.cshtml
Registration.cshtml
Marketing.cshtml
/Helpers
/Shared
Common.cshtml
Images.cshtml
/Marketing
Ads.cshtml
Products.cshtml
我希望模板可以像这样访问助手:
<body>
@Common.Header()
<img src="@Images.Resize(@Model.ImageUrl)" />
</body>
但我希望它们命名空间的原因是因为我想说广告团队能够编写和维护助手,而不必担心与普通助手或任何其他团队的命名冲突。他们可以自信地将助手命名为Resize(),而不必担心@Images.Resize,因为他们的助手将被访问为@Ads.Resize 或@Marketing.Ads.Resize()。
根据帮助程序在 Razor (https://docs.microsoft.com/en-us/aspnet/web-pages/overview/ui-layouts-and-themes/creating-and-using-a-helper-in-an-aspnet-web-pages-site) 的本机实现中的工作方式,这似乎有点可能,但我们的代码库是分布式的,因此没有 App_Code 文件夹,而且 RazorEngine 在很多方面都不同,所以我一直无法让它工作。
现在我一直在使用字符串连接将我的助手放入模板中,这似乎也是错误的,那么有没有办法可以使用 RazorEngine 进行这项工作?
【问题讨论】:
-
你应该关注github.com/RazorGenerator/RazorGenerator它可能对你有帮助。
标签: c# asp.net razor razorengine