【问题标题】:T4MVC Exclude File or ControllerT4MVC 排除文件或控制器
【发布时间】:2012-09-06 00:23:30
【问题描述】:
我有一个仅在 Debug 中内置的控制器(使用 #if DEBUG),我用它来容纳一些我不希望在生产服务器上使用的测试方法。
我遇到的问题是,使用 T4MVC 我得到了一个基于控制器的派生类,其中所有方法都重载。一旦我尝试在发布模式下构建,基类和虚拟操作方法就不再存在并且我得到构建错误。
理想情况下,我希望能够从 T4MVC 中排除控制器,但我在设置文件中看不到执行此操作的方法,并且此问题的答案:T4MVC How to Exclude Individual Files 表明这是不可能的。
任何人都知道一种方法或可以想到一个好的解决方法?
【问题讨论】:
标签:
asp.net-mvc-3
t4
t4mvc
【解决方案1】:
在控制器上使用 T4MVC 属性
[T4MVC(false)]
public Controller ControllerToIgnore //...
为我的目的工作(排除特定控制器的生成)。
来自T4MVC documentation
【解决方案2】:
考虑将您的测试方法和控制器分离到一个单独的项目中,该项目取决于您的生产代码。这样你就不需要#if Debug 的东西了。我不确定您的设置是什么,但您可以尝试使用包含在 #if !Debug 子句中的 NonActionAttribute。因此,您的生产代码不会将这些方法作为控制器上的操作运行。但这与项目布局错误有关。