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

Har*_*ala 183 asp.net-mvc-3

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

这是我web.config在Web项目的根级别.

 <appSettings>
   <add key="myKey" value="MyValue"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Anw*_*war 232

@System.Configuration.ConfigurationManager.AppSettings["myKey"]
Run Code Online (Sandbox Code Playgroud)

  • 这更像是winforms的方式.对于网络彼得是对的. (13认同)

Pet*_*r J 232

首选方法实际上是:

@System.Web.Configuration.WebConfigurationManager.AppSettings["myKey"]
Run Code Online (Sandbox Code Playgroud)

它也不需要对ConfigurationManager程序集的引用,它已经在System.Web中.

  • 如果未在项目的其他位置使用System.Configuration,则可能需要单独引用它,但System.Web已在MVC项目中引用. (20认同)
  • @Anwar的答案和你的答案有什么区别?除了命名;) (4认同)

Pet*_*nan 12

这是一个真实世界的例子,在您的布局中使用非缩小资源和缩小资源.

Web.Config中

<appSettings>

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

 </appSettings>
Run Code Online (Sandbox Code Playgroud)

剃刀模板 - 使用上面的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" )">    

}
Run Code Online (Sandbox Code Playgroud)

  • 即使它与现实生活中的例子很好,但使用.net MVC的缩小方式也是一种耻辱.看看捆绑http://www.asp.net/mvc/overview/performance/bundling-and-minification (5认同)