Pergunta

Estou procurando o equivalente a um

#if DEBUG
   //view elements to show just for debug builds
#if

para visualizações em MVC3 / Razor.Qual é o método idiomático para implementar este tipo de configuração?

Foi útil?

Solução

Isso é muito confuso imo.As visualizações devem ser idiotas e focadas na renderização HTML, não fazendo decisões baseadas em compilação.

Definir propriedades no modelo Visualizar se a depuração estiver configurada, e torná-las para fora na exibição.

Se as propriedades forem null (e.g não-depuração), nada será renderizado.

Outras dicas

Você pode usar HttpContext.Current.IsDebuggingEnabled , verifica o valor de depuração no arquivo web.config.

Por exemplo:

@if(HttpContext.Current.IsDebuggingEnabled) {
    //view elements to show just for debug builds
}

A outra opção é usar escrever sua própria extensão HttpHelper

public static class HtmlHelperExtensions
{
    public static bool IsDebug(this HtmlHelper helper)
    {
        #if DEBUG
          return true;
        #else
          return false;
        #endif
    } 
}

Então, em seu código do Razor, você pode usá-lo como:

@if (Html.IsDebug())
{ 
    //view elements to show just for debug builds
}

Não pense que você pode fazer isso no Razor, pois ele não compila da mesma forma que o código C #.

Então, eu diria que a melhor maneira de fazer isso seria no seu controlador e adicioná-lo a um valor no seu modelo.

Editar: Aqui estão mais algumas informações.A pessoa aqui está sugerindo um método de extensão que carrega o código apropriado, esteja em depuração ou não: asp.mvc view enteres #IF DEBUG na configuração de lançamento Como você não nos disse o que gostaria de fazer, não posso dar nenhuma resposta de 'código'.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top