MVC4做网站六后台管理:6.2网站信息设置
生活随笔
收集整理的這篇文章主要介紹了
MVC4做网站六后台管理:6.2网站信息设置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用來實現網站標題、名稱、關鍵字、描述、版權等信息的設置。
模型字段:
網站的設置信息前后臺都要用到,所以要把模型方式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(50,MinimumLength=4, ErrorMessage="必須是4-50個字符!")][Display(Name="網站名稱",Description="必填,4-50個字符。")]public string Name { get; set; }/// <summary>/// 網站標題/// </summary>[Required(ErrorMessage = "必須輸入網站標題!")][StringLength(50, MinimumLength = 4, ErrorMessage = "必須是4-50個字符!")][Display(Name = "網站標題", Description = "必填,4-50個字符。")]public string Title { get; set; }/// <summary>/// 網站地址/// </summary>[Required(ErrorMessage = "必須輸入網站地址!")][StringLength(50, MinimumLength = 4, ErrorMessage = "必須是4-50個字符!")][Display(Name = "網站地址", Description = "必填,4-50個字符。")]public string Url { get; set; }/// <summary>/// Logo地址/// </summary>[StringLength(255, ErrorMessage = "必須少于255個字符!")][Display(Name = "Logo地址", Description = "小于255個字符。")]public string LogoUrl { get; set; }/// <summary>/// Meta描述語/// </summary>[Required(ErrorMessage = "必須輸入Meta描述語!")][StringLength(500, ErrorMessage = "描述語之間用“,”隔開,必須少于500個字符!")][Display(Name = "Meta描述語", Description = "小于500個字符。")][DataType(DataType.MultilineText)]public string MetaDescription { get; set; }/// <summary>/// Meta關鍵字/// </summary>[Required(ErrorMessage = "必須輸入Meta關鍵字!")][StringLength(500, ErrorMessage = "關鍵字之間用“,”隔開,必須少于500個字符!")][Display(Name = "Meta關鍵字", Description = "小于500個字符。")][DataType(DataType.MultilineText)]public string MetaKeywords { get; set; }/// <summary>/// 版權信息/// </summary>[Required(ErrorMessage = "必須輸入版權!")][StringLength(500, 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() == 0) nineskyContext.SiteConfig.Add(siteConfig);else{nineskyContext.SiteConfig.Attach(siteConfig);nineskyContext.Entry<SiteConfig>(siteConfig).State = System.Data.EntityState.Modified;}return nineskyContext.SaveChanges() > 0;}}} }后臺部分:
在~/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 = 0, 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 > 0);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
轉載于:https://www.cnblogs.com/mzwhj/p/3420465.html
總結
以上是生活随笔為你收集整理的MVC4做网站六后台管理:6.2网站信息设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UVA 11259 Coin Chang
- 下一篇: C#向C++编写的DLL传递字符串参数的