«#if DEBUG» на странице ASPX / ASCX - PullRequest
3 голосов
/ 26 июня 2009

Я хочу иметь возможность указывать на одну из 2 сборок в зависимости от того, какой режим (DEBUG или RELEASE) я выбрал в своей IDE VS2005. Как то так (что не работает):

<%@ 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>

Итак, мой вопрос: как правильно использовать #if DEBUG на странице ASPX или ASCX?

Ответы [ 3 ]

3 голосов
/ 03 декабря 2009
<%
//<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

%>
3 голосов
/ 26 июня 2009

Я не знаю, как получить то, что вы хотите, но я сталкиваюсь с той же проблемой. Я делаю контрольные ссылки в web.config, а затем делаю шаги после сборки, чтобы скопировать соответствующий web.config для выпуска / отладки. Это работает, потому что вам нужен другой файл web.config для выпуска / отладки в любом случае (если только для атрибута debug = "true") и потому что вы можете иметь другой шаг после сборки для отладки и выпуска.

2 голосов
/ 07 октября 2010

Другой подход заключается в использовании метода расширения 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() %>

Отказ от ответственности: Я не скомпилировал это, возможно, есть ошибки кодирования. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...