Uzyskaj dostęp do wartości klucza z Web.config w Razor View-MVC3 ASP.NET

187

Jak uzyskać dostęp do wartości klucza z pliku web.config w moim widoku Razor.

To jest moje web.configna poziomie katalogu głównego Web Project.

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

Chcę użyć klucza w moim widoku Razor.

Dziękuję Ci.

Hari Gillala
źródło
10
@sathish Kumar: Myślałem, że jest trochę inaczej w MVC, więc musiałem zapytać tutaj, więc to najgorsze pytanie, które głosowałeś. Pamiętaj, że rozpocząłeś karierę jako początkujący, bądź uprzejmy i szanuj innych. Nie mogłem znaleźć tego rodzaju pytania w wyszukiwarce Google. Razor jest nowy ..
Hari Gillala
1
Przykro mi z tego powodu. Tak jak w przypadku najczęściej zadawanych pytań na temat przepływu stosów. Na to pytanie uzyskałem wiele wyników z Google.
sathishkumar

Odpowiedzi:

243
@System.Configuration.ConfigurationManager.AppSettings["myKey"]
Anwar
źródło
Spójrz na odpowiedź Petera, ponieważ w tym musisz dodać referencję ConfigurationManager
sensei
242

Preferowaną metodą jest w rzeczywistości:

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

Nie potrzebuje również odniesienia do zestawu ConfigurationManager, jest już w System.Web.

Peter J.
źródło
4
Jaka jest różnica między odpowiedzią @ Anwar a twoją? Oprócz nazewnictwa;)
Nate-Wilkins
21
Może być konieczne odwołanie się do System.Configuracja osobno, jeśli nie jest używany w innym miejscu w projekcie, ale System.Web jest już przywoływany w projekcie MVC.
Peter J,
12

Oto przykład ze świata rzeczywistego z wykorzystaniem nie zminimalizowanych i zminimalizowanych zasobów w twoim układzie.

Web.Config

<appSettings>

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

 </appSettings>

Szablon Razor - użyj powyższego var w następujący sposób:

@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
źródło
5
Nawet jeśli jest to miłe z prawdziwymi przykładami z życia, stosowanie w ten sposób minimalizacji w .net MVC jest wstydem. Zobacz pakiet asp.net/mvc/overview/performance/bundling-and-minification
Crypth,
1

DLA MVC

- KOD WEB.CONFIG W USTAWIENIACH APLIKACJI - <add key="PhaseLevel" value="1" />

- W WIDOKACH załóżmy, że chcesz pokazać lub ukryć coś w oparciu o wartość web.config -

- NAPISZ TO NA SWOJEJ STRONIE-- @{ var phase = System.Configuration.ConfigurationManager.AppSettings["PhaseLevel"].ToString(); }

- UŻYWAJ POWYŻEJ WARTOŚCI, GDZIE CHCESZ POKAZAĆ LUB UKRYWAĆ.

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

raj joshi
źródło