[英]“#if DEBUG” in an ASPX/ASCX page
我希望能夠基於我在VS2005 IDE中選擇的模式(DEBUG或RELEASE)指向兩個程序集之一。 像這樣的東西(不起作用):
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VideoDialog.ascx.cs" Inherits="Company.Web.Base.Controls.VideoDialog" %>
<% #if DEBUG %>
<%@ Register TagPrefix="Company" Assembly="Company" Namespace="Company.UI.Controls.VideoControl" %>
<% #else %>
<%@ Register TagPrefix="Company" Assembly="Company.UI.Controls.VideoControl" Namespace="Company.UI.Controls.VideoControl" %>
<% #endif %>
<Company:CompanyVideo ID="Video1" runat="server"></Company:CompanyVideo>
因此,我的問題是:如何在ASPX或ASCX頁面中正確使用#if DEBUG?
我不知道如何得到想要的東西,但是我面臨着同樣的問題。 我在web.config中進行控件引用,然后執行構建步驟以復制適當的web.config進行發布/調試。 之所以起作用,是因為無論如何,您都需要一個不同的web.config來進行發布/調試(如果僅針對debug =“ true”屬性),並且您可以具有一個不同的調試和發布后構建步驟。
<%
//<compilation debug="false"> in web.config
//*.aspx
#if DEBUG
Response.Write("<script type=\"text/javascript\">");
Response.Write("$.validator.setDefaults({ debug: true })");
Response.Write("</script>");
#endif
%>
另一種方法是使用HtmlHelper擴展方法。 基本上,您使用以下代碼編寫C#文件:
namespace ExtensionHandlers
{
public static class MetaTags
{
public static string GetMetaTags(this HtmlHelper html)
{
#if DEBUG
return string1;
#else
return string2;
#endif
}
}
}
然后在您的ascx文件中導入文件:
<%@ Import Namespace="ExtensionHandlers" %>
最后,在需要代碼的地方執行以下操作:
<%= Html.GetMetaTags() %>
免責聲明:我尚未對此進行編譯,可能存在編碼錯誤。 祝好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.