簡體   English   中英

ASPX / ASCX頁面中的“ #if DEBUG”

[英]“#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM