从Razor View-MVC3 ASP.NET中的Web.config访问键值


187

如何在Razor视图中从web.config访问键值。

这是在web.configWeb项目根目录中。

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

我想在Razor视图中使用密钥。

谢谢。


10
@sathish Kumar:我认为MVC有点不同,所以我不得不在这里提出问题,所以这是您投票否决的最糟糕的问题。请记住,您还曾以初学者的身份开始职业生涯,要有礼貌并尊重他人。我找不到这种在谷歌搜索问题的..剃刀新..
哈日Gillala

1
抱歉。按照我对stackoverflow的常见问题解答。对于这个问题,我从google获得了很多结果。
sathishkumar,2012年

Answers:


243
@System.Configuration.ConfigurationManager.AppSettings["myKey"]

看看Peter的回答,因为在这一部分中,您必须添加参考ConfigurationManager
sensei

242

首选方法实际上是:

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

它还不需要引用ConfigurationManager程序集,它已经在System.Web中。


4
@Anwar的答案和您的答案有什么区别?除了命名;)
Nate-Wilkins

21
如果未在项目中的其他地方使用System.Configuration,则可能需要单独引用,但是MVC项目中已经引用了System.Web。
彼得·J

12

这是一个在布局中使用非最小资产与最小资产的真实示例。

Web配置

<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
即使对现实生活中的示例很好,但在.net MVC中以这种方式使用缩小功能实在令人遗憾。看看捆绑asp.net/mvc/overview/performance/bundling-and-minification
Crypth 2014年

1

对于MVC

-应用程序设置中的WEB.CONFIG代码- <add key="PhaseLevel" value="1" />

-在视图上假设您要基于web.config显示或隐藏某些内容值-

-在您的页面上写上- @{ var phase = System.Configuration.ConfigurationManager.AppSettings["PhaseLevel"].ToString(); }

-在您要显示或隐藏的地方使用高于值的值。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.