Asp.net mvc 从web.config(在视图文件夹中)访问数据

Asp.net mvc 从web.config(在视图文件夹中)访问数据,asp.net-mvc,web-config,configurationmanager,configsection,Asp.net Mvc,Web Config,Configurationmanager,Configsection,我正在开发一个MVC应用程序,在网站的某个特定部分,我需要发送通知电子邮件(我猜最多10封)。所以我想我应该在web.config文件中将电子邮件保存为一个列表,然后在列表中循环发送电子邮件 首先,我创建了一个自定义节,并添加了所需的数据(在主web.config文件中),如()所示: 我的代码: web.config文件: 但是后来我得到一个错误,指出不能有重复的,因为在另一个web.config文件中已经有一个。因此,我将数据添加到保存在views文件夹中的web.config文件中。然而,

我正在开发一个MVC应用程序,在网站的某个特定部分,我需要发送通知电子邮件(我猜最多10封)。所以我想我应该在web.config文件中将电子邮件保存为一个列表,然后在列表中循环发送电子邮件

首先,我创建了一个自定义节,并添加了所需的数据(在主web.config文件中),如()所示:

我的代码:

web.config文件:


但是后来我得到一个错误,指出不能有重复的
,因为在另一个web.config文件中已经有一个
。因此,我将数据添加到保存在views文件夹中的web.config文件中。然而,网站运行的
部分
变量为
null
。我认为这是因为
ConfigurationManager.GetSection()
试图从“main”web.config文件中获取节。我不知道是否有可能通过代码访问保存在“视图”文件夹中的web.config文件。

据我所知,您无法从控制器访问“视图”文件夹中的web.config,它被设计用于“降序视图”文件夹范围

无论如何,您收到的错误表明您正在定义重复的节,因此请尝试在根web.config中的现有节之后添加自定义节,例如:

<configuration>
  <configSections>
    <!-- YOUR SECTION -->
    <section name="AdminEmails" type="System.Configuration.NameValueFileSectionHandler,System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <!-- EXISTING SECTIONS -->
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"></sectionGroup>
    </sectionGroup>
  </sectionGroup>
</configSections>

谢谢您的回复。但奇怪的是,在我的根web.config文件中没有标记,它只存在于viewsweb.config文件中。但是,我得到了“重复部分”错误。在我将自定义部分放入views web.config文件后,没有出现这种情况。
NameValueCollection section = 
    (NameValueCollection)ConfigurationManager.GetSection("AdminEmails");

//... loop through emails in 'AdminEmails' section...
<configuration>
  <configSections>
    <!-- YOUR SECTION -->
    <section name="AdminEmails" type="System.Configuration.NameValueFileSectionHandler,System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <!-- EXISTING SECTIONS -->
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"></sectionGroup>
    </sectionGroup>
  </sectionGroup>
</configSections>