源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ASP.NET MVC5网站开发之网站设置(九)

  • 时间:2020-09-06 00:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP.NET MVC5网站开发之网站设置(九)
网站配置一般用来保存网站的一些设置,写在配置文件中比写在数据库中要合适一下,因为配置文件本身带有缓存,随网站启动读入缓存中,速度更快,而保存在数据库中要单独为一条记录创建一个表,结构不够清晰,而且读写也没有配置文件容易实现。这次要做的是网站的基本信息,数据保存在SiteConfig.config。 在14年的时候写过一篇博客[url=http://www.1sucai.cn/article/90533.htm]《.Net MVC 网站中配置文件的读写》[/url] ,在那篇博客中把思路和方法都已经写清楚了,这次的实现思路和上次一样,只是那次自己实现了KeyValueElement类和KeyValueElementCollection类,其实这两个类在System.Configuration命名空间中都已经实现,直接使用就行。  [b]一、网站配置类(SiteConfig)[/b] 1、在Nninesky.Core项目新建文件夹Config 2、在Config文件夹添加类SiteConfig。
using System.ComponentModel.DataAnnotations;
using System.Configuration;

namespace Ninesky.Core.Config
{
 /// <summary>
 /// 网站配置类
 /// </summary>
 public class SiteConfig : ConfigurationSection
 {
 private static ConfigurationProperty _property = new ConfigurationProperty(string.Empty, typeof(KeyValueConfigurationCollection), null, ConfigurationPropertyOptions.IsDefaultCollection);

 [ConfigurationProperty("", Options = ConfigurationPropertyOptions.IsDefaultCollection)]
 private KeyValueConfigurationCollection keyValues
 {
 get { return (KeyValueConfigurationCollection)base[_property]; }
 set { base[_property] = value; }
 }


 /// <summary>
 ///网站名称
 /// </summary>
 [Required(ErrorMessage = "*")]
 [StringLength(50, ErrorMessage = "最多{1}个字符")]
 [Display(Name = "网站名称")]
 public string SiteName
 {
 get { return keyValues["SiteName"] == null? string.Empty: keyValues["SiteName"].Value; }
 set { keyValues["SiteName"].Value = value; }
 }

 /// <summary>
 ///网站标题
 /// </summary>
 [Required(ErrorMessage = "*")]
 [StringLength(50, ErrorMessage = "最多{1}个字符")]
 [Display(Name = "网站标题")]
 public string SiteTitle
 {
 get { return keyValues["SiteTitle"] == null? string.Empty: keyValues["SiteTitle"].Value; }
 set { keyValues["SiteTitle"].Value = value; }
 }

 /// <summary>
 ///网站地址
 /// </summary>
 [DataType(DataType.Url)]
 [Required(ErrorMessage = "*")]
 [StringLength(500, ErrorMessage = "最多{1}个字符")]
 [Display(Name = "网站地址")]
 public string SiteUrl
 {
 get { return keyValues["SiteUrl"] == null ? "http://" : keyValues["SiteUrl"].Value; }
 set { keyValues["SiteUrl"].Value = value; }
 }

 /// <summary>
 ///Meta关键词
 /// </summary>
 [DataType(DataType.MultilineText)]
 [StringLength(500, ErrorMessage = "最多{1}个字符")]
 [Display(Name = "Meta关键词")]
 public string MetaKeywords
 {
 get { return keyValues["MetaKeywords"] == null ? string.Empty: keyValues["MetaKeywords"].Value; }
 set { keyValues["MetaKeywords"].Value = value; }
 }

 /// <summary>
 ///Meta描述
 /// </summary>
 [DataType(DataType.MultilineText)]
 [StringLength(1000, ErrorMessage = "最多{1}个字符")]
 [Display(Name = "Meta描述")]
 public string MetaDescription
 {
 get { return keyValues["MetaDescription"] == null ? string.Empty : keyValues["MetaDescription"].Value; }
 set { keyValues["MetaDescription"].Value = value; }
 }

 /// <summary>
 ///版权信息
 /// </summary>
 [DataType(DataType.MultilineText)]
 [StringLength(1000, ErrorMessage = "最多{1}个字符")]
 [Display(Name = "版权信息")]
 public string Copyright
 {
 get { return keyValues["Copyright"] == null ? "Ninesky 版权所有" : keyValues["Copyright"].Value; }
 set { keyValues["Copyright"].Value = value; }
 }

 }
}

Siteconfig类继承自ConfigurationSection,继承自这个类是才能读写配置节。 在类中声明一个配置元素的子元素 private static ConfigurationProperty _property,子元素的配置实体类型是KeyValueConfigurationCollection(键/值集合)。
[url=]
代码也非常简单,与读取配置文件相同,使用WebConfigurationManager的GetSection方法将配置信息读入_siteConfig中,然后用TryUpdateModel<SiteConfig>(_siteConfig)绑定视图提交过来的信息。  如果绑定成功,利用_siteConfig.CurrentConfiguration.Save()方法保存配置信息(这个方法继承自ConfigurationSection,不用自己实现)。  效果如下图 [img]http://files.jb51.net/file_images/article/201608/2016081511191019.png[/img] =================================================  代码下载:http://git.oschina.net/ninesky/Ninesky[/url]  下载方法:[url=http://www.cnblogs.com/mzwhj/p/5729848.html]http://www.cnblogs.com/mzwhj/p/5729848.html[/url] 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部