Acceda al valor clave desde Web.config en Razor View-MVC3 ASP.NET

187

¿Cómo accedo a un valor clave desde web.config en mi vista Razor?

Esto está en mi web.configen el nivel raíz del Proyecto Web.

 <appSettings>
   <add key="myKey" value="MyValue"/>
</appSettings>

Quiero tener que usar la clave en mi vista Razor.

Gracias.

Hari Gillala
fuente
10
@Sathish Kumar: Pensé que es un poco diferente en MVC, así que tuve que preguntar aquí, así que la peor pregunta es que lo rechazaste. Recuerde que también ha comenzado su carrera como ingeniero, sea cortés y respete a los demás. No pude encontrar este tipo de preguntas en la búsqueda de Google ... La maquinilla de afeitar es nueva ..
Hari Gillala
1
Lo siento por eso. Según las preguntas frecuentes de stackoverflow que hice. Para esta pregunta tuve muchos resultados de google. Si hice algo mal una vez más, lo siento.
sathishkumar

Respuestas:

244
@System.Configuration.ConfigurationManager.AppSettings["myKey"]
Anwar
fuente
Eche un vistazo a la respuesta de Peter, ya que en este tiene que agregar ConfigurationManager de referencia
sensei
242

El método preferido es en realidad:

@System.Web.Configuration.WebConfigurationManager.AppSettings["myKey"]

Tampoco necesita una referencia al ensamblaje ConfigurationManager, ya está en System.Web.

Peter J
fuente
44
¿Cuál es la diferencia entre la respuesta de @ Anwar y la tuya? Además del nombramiento;)
Nate-Wilkins
21
Es posible que se deba hacer referencia a System.Configuration por separado si no se usa en otra parte de su proyecto, pero System.Web ya está referenciado en un proyecto MVC.
Peter J
12

Aquí hay un ejemplo del mundo real con el uso de activos no minificados versus activos minificados en su diseño.

Web.Config

<appSettings>

   <add key="Environment" value="Dev" />

 </appSettings>

Plantilla de maquinilla de afeitar: use esa var anterior como esta:

@if (System.Configuration.ConfigurationManager.AppSettings["Environment"] == "Dev")
{    
    <link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/styles/theme.css" )">    

}else{        

   <link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/styles/blue_theme.min.css" )">    

}
Peter Drinnan
fuente
55
Incluso si es bueno con ejemplos de la vida real, usar minificación de esa manera con .net MVC es una pena. Eche un vistazo a la agrupación asp.net/mvc/overview/performance/bundling-and-minification
Crypth
1

PARA MVC

- CÓDIGO WEB.CONFIG EN LA CONFIGURACIÓN DE LA APLICACIÓN - <add key="PhaseLevel" value="1" />

- EN VISTAS, suponga que desea mostrar u ocultar algo basado en el valor de web.config--

- ESCRIBA ESTO SOBRE SU PÁGINA-- @{ var phase = System.Configuration.ConfigurationManager.AppSettings["PhaseLevel"].ToString(); }

- USE EL VALOR ANTERIOR DONDE QUIERA MOSTRAR U OCULTAR.

@if (phase != "1") { @Html.Partial("~/Views/Shared/_LeftSideBarPartial.cshtml") }

raj joshi
fuente