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

模型字段:

网站的设置信息前后台都要用到,所以要把模型方式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. Android 开源项目及其学习

    Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...

  2. android 腾讯x5内核 浏览器

    1.浏览器内核: 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史) 浏览器内核历史介绍: 在android 4.4之前,浏览器用的还是webkit 在android 4.4之后,google就抛 ...

  3. Leetcode Implement Queue using Stacks

    Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...

  4. git flow工作流实际项目实践

    公司项目的开发流程主要是这样 代码分为 develop分支 master分支 平时我开发的时候,主要在develop分支上改动 一般来讲,有以下几种改动方式 1.直接在develop上修改代码 这种一 ...

  5. 非交织YUV格式转换

    本文为自己写的从非交织yuv420转换出yuv444,yuv422h,yuv422v和手动裁剪422h,422v图片的代码 #include <fcntl.h> #include < ...

  6. bootstrap之clearfix

    bootstrap之clearfix 在bootstrap辅助类中有那么一类,是这么定义的: 利用clearfix样式清除浮动,但是前提条件是在超小型屏幕上能显示才行(因为其是用visible-xs样 ...

  7. 无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)

    SQLite部署-无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块 近期刚使用SQLite,主要引用的是System.Data.SQLite.dll这个dll,在部署到测试 ...

  8. Ubuntu安装Oracle SQLDeveloper

    1、下载Oracle安装文件 这里我下载的是Linux RPM版本,文件名为sqldeveloper-4.0.3.16.84-1.noarch.rpm http://www.oracle.com/te ...

  9. IDEA插件

    Key Promoter 快捷键提示插件,帮助你快速记住快捷键.当你用鼠标完成某功能时,它会指示有相应的快捷键来完成刚才的功能,同时指导你为经常重复的操作建立快捷键. SerialVersionUID ...

  10. Python之路Day19-Django(二)

    本节内容概要: 一.路由系统URL 二.视图 三.模板 四.ORM操作 问题1:Django请求生命周期 -> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串 -> ...