我在这里画一个空白的东西应该很简单...
我正在尝试做类似的事情:
<my:control runat="server" id="myid" Visible="<%= (is compilation debug mode?) %>" />
答案 0 :(得分:52)
HttpContext.IsDebuggingEnabled
property:
using System.Web;
if (HttpContext.Current.IsDebuggingEnabled) { /* ... */ }
来自文档:
获取一个值,该值指示当前HTTP请求是否处于调试模式[...]
true
如果请求处于调试模式;否则,false
。
答案 1 :(得分:46)
这会让您获得<compilation>
部分组中的<system.web>
元素:
using System.Web.Configuration ;
. . .
CompilationSection compilationSection = (CompilationSection)System.Configuration.ConfigurationManager.GetSection(@"system.web/compilation") ;
. . .
// check the DEBUG attribute on the <compilation> element
bool isDebugEnabled = compilationSection.Debug ;
容易!
答案 2 :(得分:15)
<my:control runat="server" id="myid" Visible="<%= HttpContext.Current.IsDebuggingEnabled %>" />
请参阅http://msdn.microsoft.com/en-us/library/system.web.httpcontext.isdebuggingenabled%28v=vs.90%29.aspx
或 http://www.west-wind.com/weblog/posts/2007/Jan/19/Detecting-ASPNET-Debug-mode下面有丰富的反馈意见。
答案 3 :(得分:0)
在您的代码中,您可以使用IF DEBUG预处理器指令来设置可见性属性:
http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx
Phil Haack关于此的好文章:
http://haacked.com/archive/2007/09/16/conditional-compilation-constants-and-asp.net.aspx#51205
答案 4 :(得分:0)
我打赌你可以使用
#if DEBUG
#endif
ASPX 页面中的一些代码,而不是代码隐藏(这是一个单独的编译)。
类似的东西:
<script runat="server" language="C#">
protected Page_Load() {
#if DEBUG
myid.Visible = true;
#else
myid.Visible = false;
#endif
}
</script>
或者,您可以我们ConfigurationManager
或XElement
并实际解析代码中的web.config并找到该属性。
例如:
var xml = XElement.Load("path-to-web.config");
bool isDebug = (bool)xml.Descendants("compilation").Attribute("debug");