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

模型字段:

网站的设置信息前后台都要用到,所以要把模型方式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. js获取cookie中存储的值

    最近看了试卷题目发现自己会的十分的匮乏, 第一题就把自己难住了,知道有这个东西,但是实际上没有操作过. ========================================= cookie ...

  2. Shader实例:序列帧动画

    效果: 序列帧图片网上随便找的,质量不是很好,重点不是它,不要在意. 思路: 1.之前都是在一张面片上直接映射一张纹理,IN.uv的范围是0~1 现在要映射一张纹理上的一小块区域,就要用这块区域的uv ...

  3. gulp的基本使用

    gulp 了解 首先我们了解一下什么是gulp, gulp是前端自动化构建工具,在开发过程中很多重复的任务,我们都可以正确的使用gulp来完成,gulp基于nodejs,使用gulp可以做很多事情 例 ...

  4. CF-补题1

    CF-补题1 1.CodeForces 735C    题意:n个人淘汰赛,两个人可以比赛的条件是:两人打过的场数之差绝对值<2.求冠军最多可以打多少场.  总结:看了题解,转换一下思路.求n个 ...

  5. CentOS利用postfix搭建邮件服务器

    之前我用nodemailer通过163邮箱来发送邮件,不过没过几天就一直ETIMEDOUT,不知道什么原因,想着还是自己搭一个来发邮件可能靠谱点(flag?) 安装postfix CentOS 7 自 ...

  6. [LintCode] Climbing Stairs 爬梯子问题

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  7. eclipse导入项目出现叹号处理方法:

    1.选中该项目名称,单击右键 2.点击Properties 3.选中Java Build Path 4. 5. 6. 7.出现红叉的解决办法 8. 9. 10. 11. 12. 按照以上步骤操作就可以 ...

  8. Ring0隐藏进程的方法

    第一种在系统调用服务表HOOK ZwQuerySystemInformation函数地址 使用InterlockedExchange函数将ZwQuerySystemInformation在内核导出表K ...

  9. 关于shiro

    1.1  简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Securi ...

  10. ex2-注释和井号

    代码: print("I could have code like this.") # and the commnt after is ignored.# You can also ...