2

我正在寻找相当于

#if DEBUG
   //view elements to show just for debug builds
#if

用于 MVC3/Razor 中的视图。实现这种设置的惯用方法是什么?

4

3 回答 3

3

这太乱了IMO。视图应该是愚蠢的,并专注于呈现 HTML,而不是做出基于构建的决策。

如果配置了调试,请在视图模型中设置属性,然后在视图中呈现它们。

如果属性为空(例如非调试),则不会呈现任何内容。

于 2011-12-06T23:37:28.243 回答
3

您可以使用HttpContext.Current.IsDebuggingEnabled,它检查 web.config 文件中的调试值。

例如:

@if(HttpContext.Current.IsDebuggingEnabled) {
    //view elements to show just for debug builds
}

另一种选择是使用编写自己的 HttpHelper 扩展

public static class HtmlHelperExtensions
{
    public static bool IsDebug(this HtmlHelper helper)
    {
        #if DEBUG
          return true;
        #else
          return false;
        #endif
    } 
}

然后在您的 Razor 代码中,您可以将其用作:

@if (Html.IsDebug())
{ 
    //view elements to show just for debug builds
}
于 2014-03-03T21:25:52.007 回答
0

不要认为你可以在 Razor 中做到这一点,因为它的编译方式与 C# 代码不同。

所以我想说最好的方法是在你的控制器中做它并将它添加到你的模型中的一个值中。

编辑:这里有更多信息。这里的人建议使用一种扩展方法来加载适当的代码,无论它是否处于调试状态:asp.mvc 视图在发布配置中输入#IF DEBUG 因为你还没有告诉我们你想做什么,所以我不能给你任何“代码”的答案。

于 2011-12-06T22:43:55.713 回答