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