用来实现网站标题、名称、关键字、描述、版权等信息的设置。

模型字段:

网站的设置信息前后台都要用到,所以要把模型方式Ninesky/Models文件夹中,代码如下:

////////////////////
//网站设置模型
//创建日期2013-8-1
//修改日期2013-8-4
/////////////////// using System.ComponentModel.DataAnnotations; namespace Ninesky.Models
{
/// <summary>
/// 网站信息设置
/// </summary>
public class SiteConfig
{
[Key]
public int Id { get; set; }
/// <summary>
/// 网站名称
/// </summary>
[Required(ErrorMessage="必须输入网站名称!")]
[StringLength(,MinimumLength=, ErrorMessage="必须是4-50个字符!")]
[Display(Name="网站名称",Description="必填,4-50个字符。")]
public string Name { get; set; }
/// <summary>
/// 网站标题
/// </summary>
[Required(ErrorMessage = "必须输入网站标题!")]
[StringLength(, MinimumLength = , ErrorMessage = "必须是4-50个字符!")]
[Display(Name = "网站标题", Description = "必填,4-50个字符。")]
public string Title { get; set; }
/// <summary>
/// 网站地址
/// </summary>
[Required(ErrorMessage = "必须输入网站地址!")]
[StringLength(, MinimumLength = , ErrorMessage = "必须是4-50个字符!")]
[Display(Name = "网站地址", Description = "必填,4-50个字符。")]
public string Url { get; set; }
/// <summary>
/// Logo地址
/// </summary>
[StringLength(, ErrorMessage = "必须少于255个字符!")]
[Display(Name = "Logo地址", Description = "小于255个字符。")]
public string LogoUrl { get; set; }
/// <summary>
/// Meta描述语
/// </summary>
[Required(ErrorMessage = "必须输入Meta描述语!")]
[StringLength(, ErrorMessage = "描述语之间用“,”隔开,必须少于500个字符!")]
[Display(Name = "Meta描述语", Description = "小于500个字符。")]
[DataType(DataType.MultilineText)]
public string MetaDescription { get; set; }
/// <summary>
/// Meta关键字
/// </summary>
[Required(ErrorMessage = "必须输入Meta关键字!")]
[StringLength(, ErrorMessage = "关键字之间用“,”隔开,必须少于500个字符!")]
[Display(Name = "Meta关键字", Description = "小于500个字符。")]
[DataType(DataType.MultilineText)]
public string MetaKeywords { get; set; }
/// <summary>
/// 版权信息
/// </summary>
[Required(ErrorMessage = "必须输入版权!")]
[StringLength(, ErrorMessage = "必须少于500个字符!")]
[Display(Name = "版权信息", Description = "支持Html,小于500个字符。")]
[DataType(DataType.MultilineText)]
public string Copyright { get; set; }
}
}

同样在Ninesky/Repository文件夹中添加接口InterfaceSiteConfig

using Ninesky.Models;

namespace Ninesky.Repository
{
/// <summary>
/// 网站设置信息接口
/// <remarks>
/// 版本v1.0
/// 创建2013.8.4
/// </remarks>
/// </summary>
public interface InterfaceSiteConfig
{
/// <summary>
/// 查找设置
/// </summary>
/// <returns></returns>
SiteConfig Find(); /// <summary>
/// 保存设置
/// </summary>
/// <param name="siteConfig">设置</param>
/// <returns></returns>
bool Save(SiteConfig siteConfig);
}
}

再添加SiteConfigRepository.cs

using Ninesky.Models;
using System.Linq; namespace Ninesky.Repository
{
/// <summary>
/// <remarks>
/// 版本v1.0
/// 创建2013.8.4
/// </remarks>
/// </summary>
public class SiteConfigRepository:InterfaceSiteConfig
{
private NineskyContext nineskyContext;
/// <summary>
/// 查找设置
/// </summary>
/// <returns></returns>
public SiteConfig Find()
{
using (nineskyContext = new NineskyContext())
{
return nineskyContext.SiteConfig.SingleOrDefault();
}
}
/// <summary>
/// 保存设置
/// </summary>
/// <param name="siteConfig">设置</param>
/// <returns></returns>
public bool Save(SiteConfig siteConfig)
{
using (nineskyContext = new NineskyContext())
{
if (nineskyContext.SiteConfig.Count() == ) nineskyContext.SiteConfig.Add(siteConfig);
else
{
nineskyContext.SiteConfig.Attach(siteConfig);
nineskyContext.Entry<SiteConfig>(siteConfig).State = System.Data.EntityState.Modified;
}
return nineskyContext.SaveChanges() > ;
}
}
}
}

后台部分:

在~/Areas/Admin/Controllers中添加SystemController.cs

添加局部视图action public PartialViewResult Config() 及保存处理的action public JsonResult Config(SiteConfig siteConfig)

/// <summary>
/// 基本信息设置
/// </summary>
/// <returns></returns>
public PartialViewResult Config()
{
var _siteConfig = new SiteConfigRepository().Find();
if (_siteConfig == null) _siteConfig = new SiteConfig() { Id = , Name = "NineSky", Title = "欢迎光临NineSky!" };
return PartialView(_siteConfig);
} /// <summary>
/// Config保存
/// </summary>
/// <param name="siteConfig"></param>
/// <returns></returns>
[HttpPost]
public JsonResult Config(SiteConfig siteConfig)
{
JsonData _jdata = new JsonData();
if (ModelState.IsValid)
{
var _scRsy = new SiteConfigRepository();
if (_scRsy.Save(siteConfig))
{
_jdata.Success = true;
_jdata.Message = ("保存成功√");
}
else
{
_jdata.Success = false;
_jdata.Message = ("保存数据时发生错误");
}
}
else
{
_jdata.Success = false;
var _eItem = ModelState.Where(m => m.Value.Errors.Count > );
foreach (var i in _eItem)
{
_jdata.MessageLsit.Add(i.Key, "验证失败!");
}
_jdata.Message = ("保存数据时发生错误"); }
return Json(_jdata);
}

为action 添加视图

@model Ninesky.Models.SiteConfig

<div class="c_navbar">网站设置 >> 基本信息</div>

@using (Html.BeginForm("Config", "System", FormMethod.Post, new { id = "siteconfig_form" }))
{
@Html.AntiForgeryToken()
<div class="fs_wapper">
<div class="header">网站设置 @Html.HiddenFor(model => model.Id)</div>
@Html.ValidationSummary()
<table>
<tr>
<th>@Html.LabelFor(model => model.Name)</th>
<td>@Html.EasyuiInput(model=>model.Name,new{@class="easyui-validatebox"})
@Html.DisplayDescriptionFor(model => model.Name)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.Title)</th>
<td>@Html.EasyuiInput(model=>model.Title,new{@class="easyui-validatebox"})
@Html.DisplayDescriptionFor(model => model.Title)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.Url)</th>
<td>@Html.EasyuiInput(model => model.Url, new { @class = "easyui-validatebox" })
@Html.DisplayDescriptionFor(model => model.Url)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.LogoUrl)</th>
<td>@Html.EasyuiInput(model => model.LogoUrl, new { @class = "easyui-validatebox" })
@Html.DisplayDescriptionFor(model => model.LogoUrl)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.MetaDescription)</th>
<td>
@Html.EasyuiInput(model => model.MetaDescription, new { @class = "easyui-validatebox" }, "textarea")
@Html.DisplayDescriptionFor(model => model.MetaDescription)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.MetaKeywords)</th>
<td>@Html.EasyuiInput(model => model.MetaKeywords, new { @class = "easyui-validatebox" }, "textarea")
@Html.DisplayDescriptionFor(model => model.MetaKeywords)</td>
</tr>
<tr>
<th>@Html.LabelFor(model => model.Copyright)</th>
<td>@Html.EasyuiInput(model => model.Copyright, new { @class = "easyui-validatebox" }, "textarea")
@Html.DisplayDescriptionFor(model => model.Copyright)</td>
</tr>
<tr>
<th></th>
<td><a id="save" href="javascript:void()" class="easyui-linkbutton">保存</a></td>
</tr>
</table>
</div>
}
<script type="text/javascript"> $(document).ready(function () {
$("#save").click(function () {
ConfigSubmit();
});
});
</script>

在\Areas\Admin\Scripts文件件中添加System.js文件

//Config页提交
function ConfigSubmit() {
$('#siteconfig_form').form('submit', {
success: function (data) {
var rt = jQuery.parseJSON(data);
if (rt.Success) {
$.messager.alert("保存成功", rt.Message);
}
else {
var msg = "";
if (rt.MessageLsit != undefined) {
$.each(rt.MessageLsit, function (i, val) {
msg += "<li>" + i + ":" + val + "</li>";
});
}
if (msg != "") msg = rt.Message + "<br /> <p> 原因如下:" + "<ul>" + msg + "</ul></p>";
else msg = rt.Message;
$.messager.alert("保存失败", msg, "error");
}
}
});
}

完工

前台的调用:

打开前台布局页_Layout.cshtml。

在顶部获取网站信息

随后在布局页调用相应字段

进首页看一下,已经显示出来了。

==========================

代码见http://pan.baidu.com/s/1rG1vH

MVC4做网站六后台管理:6.2网站信息设置的更多相关文章

  1. 学用MVC4做网站六:后台管理(续)

    关于后台的说明: 后台将会用easyui + ajax模式. 这里涉及两个问题,一个是使用easyui如何在前台验证模型的问题,另一个是ajax提交后返回数据. 一.Easyui验证 前台验证采用ea ...

  2. MVC4做网站六后台管理:6.1.4管理员列表、添加及删除

    一.管理员列表 1.首先[AdministratorController]中添加返回分部视图的public PartialViewResult Index() /// <summary> ...

  3. 学用MVC4做网站六后台管理:6.1.3管理员修改密码

    6.1.3修改密码 需要两个action.一个是点击修改密码的链接要显示修改密码的分部视图(对话框形式):另一个是提交的处理action. 1.打开[AdministratorController]添 ...

  4. 学用MVC4做网站六后台管理:6.1.1管理员登录、6.1.2退出

    1.管理员登录 在6.1中已添加控制器[AdministratorController] 在控制器中添加[Login()]action,用来显示登录页面 /// <summary> /// ...

  5. 学用MVC4做网站六后台管理:6.1管理员(续)

    接6.1 首先在~/Areas/Admin/Models文件夹添加管理员模型Administrator.cs using System.ComponentModel.DataAnnotations; ...

  6. django带后台管理功能的网站

    一.原起: 我大学是学的.Net平台.在那个平台上开发网站用的是ASP.NET这门技术:在那里对数据库的处理.为了 方便写代码,通常也是会用ORM(对象关系模型映射):毕业后搞起了MySQL数据库.自 ...

  7. 如何修改ECSHOP后台管理中心的Title信息

    下图中红色圈定的部分就是本次修改要改的地方 修改方法其实很简单的:打开语言包文件  /languages/zh_cn/admin/common.php 将 $_LANG['app_name'] = ' ...

  8. MVC4做网站后台:模块管理1、修改模块信息

    网站可能会包含一些模块:像文章.产品.图片.留言等. 栏目模块主要实现功能,启用或禁用模块,模块权限设置,模块上传设置等. 权限设置和上传设置以后专门考虑,先来显示或禁用模块. 1.在顶部导航栏添加管 ...

  9. MVC4做网站后台:用户管理 —用户

    这块进行用户管理,可以浏览.查询已注册的用户,修改用户资料,删除用户等.没有做添加用户,不知是否必要.列表页还是使用easyui的datagrid.这个思路跟用户组的方式差不多. 1.接口Interf ...

随机推荐

  1. POJ 1160 题解

    Post Office Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18835   Accepted: 10158 Des ...

  2. 文件处理命令:sed

    使用:sed [-nefr] actionaction:-i直接修改读取的档案内容,而不是由屏幕输出,-r表示支持延伸型正则表达式的语法.动作说明:[n1[,n2]] function n1,n2表示 ...

  3. node-schedule定时任务

    https://github.com/node-schedule/node-schedule npm install node-schedule * * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ ...

  4. Where product development should start

    We all need to know our customers in order to create products they’ll actually buy. This is why the  ...

  5. oracle--导出、导入blob类型的字段

    blob是oracle中的一个数据类型,保存的是压缩后的二进制形式的大数据. 数据迁移如果涉及到blob字段,都不好处理,因为无法用常规方法进行操作,如:使用select查看该字段,也无法用inser ...

  6. Struts 2的数据校验

    既然说到了Struts 2的数据校验,我们该怎么去实现呢?又是通过什么来实现呢? 就让我带着大家一起来走进Struts 2的数据校验吧. 首先我们会想到在Stuts 2的登录案例中我们定义了一个Act ...

  7. VS调试程序时一闪而过的问题-解决方法(网上搜集)

    在VS2012里的控制台应用程序在运行时,结果画面一闪而过,不管是用F5 还是用Ctrl + F5都是一样,导致无法看到结果. 网上有不少的办法,说是都是在程序最后加一个要程序暂停的语句或从控制台上获 ...

  8. java身份证验证

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  9. 通过js实现回到顶部功能

    许多商城网址,当我们滚动到一定高度时,我们会发现一般会出现一个回到顶部的js选项,点击轻松实现回到顶部,交互效果会显得比较人性化,且回到顶部过程中若在滚动滚动条时可以停止滚动,现在让我们来实现吧 我总 ...

  10. shell脚本删除指定mobileprovision

    由于某种原因,xcode帮我按照了几千个开发和上线证书,需要删除这部分证书: #dir="/Users/Ethan/Library/MobileDevice/Provisioning Pro ...