เข้าถึงค่าคีย์จาก Web.config ใน Razor View-MVC3 ASP.NET


187

ฉันจะเข้าถึงค่าคีย์จาก web.config ในมุมมองมีดโกนของฉันได้อย่างไร

นี่คือของฉันweb.configในระดับรากของโครงการเว็บ

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

ฉันต้องการใช้กุญแจในมุมมองมีดโกนของฉัน

ขอบคุณ.


10
@Sathish Kumar: ฉันคิดว่ามันแตกต่างกันเล็กน้อยใน MVC ดังนั้นฉันต้องถามที่นี่ดังนั้นมันเป็นคำถามที่แย่ที่สุดที่คุณโหวตมันลง โปรดจำไว้ว่าคุณได้เริ่มต้นอาชีพของคุณด้วยการเป็นผู้ริเริ่มสุภาพและเคารพผู้อื่น ฉันไม่สามารถหาคำถามประเภทนี้ในการค้นหาของ Google .. มีดโกนยังใหม่ ..
Hari Gillala

1
ขออภัยเกี่ยวกับสิ่งนั้นตามคำถามที่พบบ่อยเกี่ยวกับสแต็คโอเวอร์โฟลว์ฉันทำสำหรับคำถามนี้ฉันมีผลลัพธ์มากมายจาก google หากฉันทำอะไรผิดอีก
sathishkumar

คำตอบ:



242

วิธีการที่ต้องการจริงๆแล้ว:

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

นอกจากนี้ยังไม่จำเป็นต้องมีการอ้างอิงไปยังแอสเซมบลี ConfigurationManager มันอยู่ใน System.Web


4
ความแตกต่างระหว่างคำตอบของ @ Anwar และของคุณคืออะไร นอกจากการตั้งชื่อแล้ว)
Nate-Wilkins

21
การกำหนดค่าระบบอาจต้องมีการอ้างอิงแยกต่างหากหากไม่ได้ใช้ที่อื่นในโครงการของคุณ แต่ System.Web ถูกอ้างอิงแล้วในโครงการ MVC
Peter J

12

นี่คือตัวอย่างของโลกแห่งความจริงที่มีการใช้สินทรัพย์ที่ไม่ได้ลดขนาดและขนาดเล็กลงในเค้าโครงของคุณ

Web.Config

<appSettings>

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

 </appSettings>

เทมเพลตมีดโกน - ใช้ var ที่ด้านบนดังนี้:

@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" )">    

}

5
แม้ว่ามันจะดีกับตัวอย่างในชีวิตจริงการใช้การทำให้เป็น minification เช่นนั้นด้วย. net MVC ก็เป็นเรื่องน่าละอาย ดูการรวมกลุ่มasp.net/mvc/overview/performance/bundling-and-minification
Crypth

1

สำหรับ MVC

- รหัส WEB.CONFIG ในการตั้งค่าแอป - <add key="PhaseLevel" value="1" />

- ในมุมมองสมมติว่าคุณต้องการแสดงหรือซ่อนบางสิ่งบางอย่างตาม web.config Value--

- เขียนสิ่งนี้ไว้ที่ด้านบนของหน้า - @{ var phase = System.Configuration.ConfigurationManager.AppSettings["PhaseLevel"].ToString(); }

- ใช้มูลค่าสูงกว่าที่คุณต้องการแสดงหรือซ่อน

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.