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

Posted

技术标签:

【中文标题】从 Razor View-MVC3 ASP.NET 中的 Web.config 访问键值【英文标题】:Access key value from Web.config in Razor View-MVC3 ASP.NET 【发布时间】:2012-02-23 01:36:44 【问题描述】:

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

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

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

我想在我的 Razor 视图中使用该键。

谢谢。

【问题讨论】:

@sathish Kumar:我认为它在 MVC 中有点不同,所以我不得不在这里问,所以这是最糟糕的问题,你否决了它。请记住,您的职业生涯始于初学者,要有礼貌并尊重他人。我在谷歌搜索中找不到这种问题.. Razor 是新的.. 对此感到抱歉。根据我所做的***常见问题解答。对于这个问题,我从谷歌得到了很多结果。如果我做错了什么,再次抱歉。 【参考方案1】:
@System.Configuration.ConfigurationManager.AppSettings["myKey"]

【讨论】:

看看彼得的答案,因为在这个你必须添加参考 ConfigurationManager【参考方案2】:

首选的方法其实是:

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

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

【讨论】:

@Anwar 的回答和你的有什么区别?除了命名;) System.Configuration 如果没有在项目的其他地方使用,可能需要单独引用,但 System.Web 已在 MVC 项目中引用。【参考方案3】:

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

Web.Config

<appSettings>

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

 </appSettings>

Razor 模板 - 像这样使用上面的 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" )">    


【讨论】:

即使现实生活中的例子很好,使用 .net MVC 以这种方式缩小是一种耻辱。看看捆绑asp.net/mvc/overview/performance/bundling-and-minification【参考方案4】:

对于 MVC

-- 应用设置中的WEB.CONFIG 代码-- &lt;add key="PhaseLevel" value="1" /&gt;

-- ON VIEWS 假设您想根据 web.config 值显示或隐藏某些内容--

-- 把这个写在你的页面顶部-- @ var phase = System.Configuration.ConfigurationManager.AppSettings["PhaseLevel"].ToString();

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

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

【讨论】:

以上是关于从 Razor View-MVC3 ASP.NET 中的 Web.config 访问键值的主要内容,如果未能解决你的问题,请参考以下文章

迁移到 ASP.NET 3.1 - 从登录控制器路由到 Razor 页面主页索引页面不再工作

如何从 ASP.NET Core 的 Razor 视图中获取 Url 中 id 的值

在 Razor (chtml) 中渲染动态视图,如何在 asp.net core 3.0 中将 FileProvider 添加到 razor?

从 ASP.NET Core Razor 页面获取 DisplayAttribute.Prompt

如何在 asp.net 网站中激活 cors (razor 3)

ASP.net MVC 3 Razor - jQuery Intellisense