C#学习教程:#DEBUGASPX页面中的预处理器语句这只是我做不到的事情吗?背景:我正在尝试在DEBUG模式下包含一个完整版本的jQuery(对于调试=)),以及一个用于发布的缩小版本。我试过了,但我对ASPX<%语法不是很熟悉。我只是从根本上误解了这种语法的作用吗?这里有一个有趣的区别——在aspx页面中使用#ifDEBUG来自web.config中的标记,但是当您在代码隐藏中使用它时,它会从项目文件的构建配置中的常量中提取DEBUG。所以他们实际上访问了两个不同的设置。所以,据我所知,这实际上是不可能的。更好的方法可能是使用服务器端代码来包含脚本。我会使用类似protectedvoidPage_Load(objectsender,EventArgse){#ifDEBUGScriptManager.RegisterClientScriptInclude(this,this.GetType(),"JQueryScript","resources/jquery-1.3.2.js");#elseScriptManager.RegisterClientScriptInclude(this,this.GetType(),"JQueryScript","resources/jquery-1.3.2.min.js");#endif}对我来说最优雅的解决方案是简单地使用预处理程序指令在代码隐藏中定义一个字段,然后从aspx页面检查它的值。在代码隐藏中:publicpartialclassWebClient:System.Web.UI.Page{#ifDEBUGpublicboolDebugMode=true;#elsepublicboolDebugMode=false;#endif}Aspx页面:我试过你的代码,它可以正常工作,我很好。我从web.config中的system.web/compilation部分启用或禁用了DEBUG,作为网站运行(未作为Web应用程序测试;可能不同...)。要查看运行中的代码,请将故意的语法错误添加到页面并尝试在启用调试模式的情况下运行它。编译器将在错误页面上生成一个链接,允许您查看源代码。提示:预处理器指令被插入到输出中。第218行:#ifDEBUG第219行:第220行:#linedefault第221行:#linehidden第222行:@__w.Write("rnrn");第223行:第224行:#line14"F:Testtest.aspx"第225行:#else第226行:第227行:#linedefault第228行:#linehidden第229行:@__w.Write("rnrn");第230行:第231行:#line16"F:Testtest.aspx"第232行:#endif当然,还有其他(更好的)方法可以做您想做的事...我已经尝试通过多种方式取得成功这些年来。在玩了asp.netmvc之后,我有了这个想法。另一种可能性是将其全部保存在具有无效MIME类型的aspx页面中。在asp.netMVC中,模板加载了无效的MIME类型,因此浏览器不会解析它们。我在这里遵循相同的模式;瓦拉!成功...您需要一个静态函数,使您可以轻松访问调试约束。Ops.IsRelease()是publicstatic函数,它返回调试约束PublicSharedFunctionIsRelease()AsBooleanDim[release]=False#IfNotdebugThen[release]=True#EndIfReturn[release]EndFunctionIhavethesame问题,我试图在asp.mvc应用程序和webform应用程序中解决它。#ifdebug总是返回true,它从不考虑web.config编译设置。我以与本文中发布的Syam建议类似的方式解决了这个问题,但我使用了静态变量而不是静态函数:http://www.psworld.pl/Programming/DebugDirective这是我的解决方案:protectedvoidPage_Load(objectsender,EventArgse){if(System.Diagnostics.Debugger.IsAttached){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");}}不幸的是,我不认为你可以在aspx设备指令中进行预处理。一种更简单的方法是在代码隐藏中简单地使用jQueryURL属性,然后您可以设置预处理器指令来声明它。或者,如果您希望将URL保留在代码前面,则可以使用Literal控件并根据处理器指令在代码隐藏中切换其可见性。例如:Codesurprise:Codehiding,inthePage_Loadmethod:以上是C#学习教程分享的全部内容:ASPX页面#DEBUG预处理器语句。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——#ifDEBUGlitJQueryDebug.Visible=true;litJQuery.Visible=false;#endif本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
