我有一个ASP.NET MVC解决方案,并且我有大量的ASP.NET MVC项目中的HtmlHelper类,它们会获取数据并生成各种html代码片段以在各种页面上显示。我应该在哪里将共享HTML生成代码放在ASP.NET MVC项目中?
我现在必须运行一堆计划作业,其中许多作业会生成电子邮件。我将所有这些工作都转移到了解决方案中的一个单独项目中(称为AdminJob.csproj),但是现在我发现必须生成一些电子邮件,其中包含非常类似于我在查看页面中的HTML的电子邮件。我试图保持管理工作不依赖于ASP.NET MVC项目(因为我想运行adminjob项目作为命令行,如果需要的话),我也想避免让我的ASP.NET MVC项目对AdminJob项目有依赖性(因为这看起来很奇怪)。
有关如何避免在ASP.NET MVC项目和我的AdminJob项目中重复相同的HTML呈现代码的任何建议?
我唯一能想到的是在名为“ViewHelpers”或类似的解决方案中创建另一个项目,并将我的所有HTMLHelpers移动到该项目中,以便它可以被我的MVC项目和AdminJob项目引用。对于这个代码有一个单独的项目似乎有些矫枉过正,但我想不出另一个不会产生重复的解决方案。
任何其他建议为更好的方式来做到这一点,并避免任何重复?
你的建议似乎合乎逻辑。这个问题主要是基于意见的,而且会被解释为脱离主题。 – Nkosi
我不同意,这是完全意见的基础,因为我在这里寻找最佳实践,它似乎是一个常见的情况,你有MVC视图和电子邮件生成的重叠要求,所以我认为有证据和基于主体的答案给予分离担忧和其他目标。任何关于在问题中改变某些事情的建议,使你认为它会减少主题? – leora
我会按照您的建议去创建共享代码的单独项目。但不要将它创建为“SharedHTML”或类似的东西,最终会显示更多应该共享的代码,并且您可以使用这个项目。 – Dinei