首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >#调试ASPX页面中的预处理器语句

#调试ASPX页面中的预处理器语句
EN

Stack Overflow用户
提问于 2009-11-26 09:00:14
回答 8查看 12.2K关注 0票数 25

我试图在ASPX页面中使用预处理器指令,但该页面无法识别它。这就是我不能做的事吗?

背景:我正在尝试在调试模式中包含jQuery的完整版(好吧,debugging = ),以及用于发布的精简版。我试过了,但我对ASPX <%语法不是很熟悉。我只是从根本上误解了这个语法的作用吗?

代码语言:javascript
复制
<% #if DEBUG %>
<script type="text/javascript" src="resources/jquery-1.3.2.js" />
<% #else %>
<script type="text/javascript" src="resources/jquery-1.3.2.min.js" />
<% #endif %>
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-01-27 05:26:12

这里有一个有趣的区别--在aspx页面中使用#if DEBUG从web.config中的标记中提取,但是当您在代码隐藏中使用它时,它从项目文件中的构建配置中提取出DEBUG常量。所以他们实际上是在访问两个不同的设置。

因此,据我所知,这实际上是不可能的。

票数 18
EN

Stack Overflow用户

发布于 2013-09-09 19:34:03

对我来说,最好的解决方案是使用预处理器指令在代码隐藏中简单地定义一个字段,然后从aspx页面检查它的值。

在代码隐藏中:

代码语言:javascript
复制
public partial class WebClient : System.Web.UI.Page
{        
#if DEBUG 
    public bool DebugMode = true;
#else
    public bool DebugMode = false;
#endif
}

Aspx页面:

代码语言:javascript
复制
<%if(this.DebugMode){%>
    <script type="text/javascript" src="resources/jquery-1.3.2.js" />
<%}%>
<%else{%>
    <script type="text/javascript" src="resources/jquery-1.3.2.min.js" />
<%}%>
票数 7
EN

Stack Overflow用户

发布于 2009-11-26 10:54:24

一种更好的方法可能是使用服务器端代码来包含脚本。我会使用像这样的东西

代码语言:javascript
复制
protected void Page_Load(object sender, EventArgs e)
{
#if DEBUG    
    ScriptManager.RegisterClientScriptInclude(this, this.GetType(), "JQueryScript", "resources/jquery-1.3.2.js");
    #else
    ScriptManager.RegisterClientScriptInclude(this, this.GetType(), "JQueryScript", "resources/jquery-1.3.2.min.js");
    #endif
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1801007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档