精华内容
下载资源
问答
  • 整体架构使用ssm框架,使用maven管理整个项目,使用mvc三层架构,其中各个模块的作用: (1)父模块是其他所有模块的父工程,用于整和项目,管理依赖版本(2)公共模块用于存放工具类(3)bean模块用于存放数据库所...
  • SMSByHan 教务管理系统 技术栈.net_framework mvc5 Autofac Repository UnitOfWork EF6 Layui websocket--用于类似聊天广场功能 内含角色权限管理,以及教务系统功能 在线预览
  • 开发文档 集成MarkDown编辑查看功能
  • Layui基本使用+源码MVC

    千次阅读 2020-07-24 11:22:23
    介绍 话不多说,各位老大稍微了解下就知道:Laui是...官方文档:https://www.layui.com/doc/ 使用范围 博主最近在开发小程序web后台管理模块,觉得这个框架不错,很适合开发后台管理之类的web项目,特以此记录。至于和

    介绍

    话不多说,各位老大稍微了解下就知道:Laui是16年出厂的国产开源前端框架。
    说白了就是拿来即用,风格类似Bootstrap,可以说是专为后端程序员设计。定义了很多前后端交互的样式接口,极大减少了后端人员的开发成本。

    说白了,该框架就是为了方便后端人员开发前端而使用的。再一个就是放心使用和学习,这个老家伙是开源的。
    官方文档:https://www.layui.com/doc/

    使用范围

    博主最近在开发小程序web后台管理模块,觉得这个框架不错,很适合开发后台管理之类的web项目,特以此记录。至于和Bootstrap等成熟框架相比的话。无外乎看亮点:


    • 两个都是UI渲染框架:bootstrap相对来说是比较成熟的一个框架,但是同时也是因为成熟,就显得有些冗余,layui比较新,轻量级,样式简单好看;
    • 适用范围不一样:bootstrap 在前端响应式方面没得说,无论是做pc,还是移动端那都是杠杠的;layui 其实则更偏向与后端开发人员使用,在服务端页面上有非常好的效果。所以怎么选择,看具体需求,仁者见仁智者见智。

    环境导入

    1.官方下载包(https://www.layui.com/)
    在这里插入图片描述
    2.将下载好的文件导入项目
    博主是采用的Asp.Net MVC(VS2012)开发此次项目,所以将其导入Content文件夹即可。
    在这里插入图片描述
    3.前端页面引用
    导入其中的layui.js、layui.css即可。
    在这里插入图片描述

    最终效果及源码

    在这里插入图片描述
    LayUI主要内容会后续介绍。以及小程序开发,后续博主也会持续分享。这是此次Layui静态登录样式源码:
    链接:https://pan.baidu.com/s/1z-SSyo_HfW3rVWIhAUWrmg
    提取码:GQYu

    展开全文
  • 源码采用layui框架,开发的一套管理系统模版,包括管理员登录登出,表单模块管理,相册图片管理,用户管理以及打印导出等
  • 1、该框架主要用到的技术有MVC,EF,Layer,以及Razor语法和数据库有关的操作。 2、框架二次开发(增加,删除,修改,建库,以及维护查询等) 3.框架公用库更新要求与规范 4.本框架在实际的工作中综合应用 5.为...

    内容:

    1、该框架主要用到的技术有MVC,EF,Layer,以及Razor语法和数据库有关的操作。

    2、框架二次开发(增加,删除,修改,建库,以及维护查询等)

    3.框架公用库更新要求与规范

    4.本框架在实际的工作中综合应用

    5.为提高工作效率,怎么样结合本框架快速提高工作效率

     

    获取源码和教程地址

     

    转载于:https://www.cnblogs.com/xuxinshuai/p/9241640.html

    展开全文
  • c# mvc基础框架+前端layui.js+sqlsugar处理数据(支持sql server、mysql、sqlite、Oracle)。 用户,角色和页面配置齐全,容易上手,非常适合小微型项目开发。
  • 1.相关技术,MVC、EF、Layer、MEF讲解 2.框架使用,规范 3.框架公用库更新要求与规范 4.本框架在实际的工作中综合应用 5.为提高工作效率,怎么样结合本框架提高工作效率...
    展开全文
  • 1.相关技术,MVC、EF、Layer、MEF讲解 2.框架使用,规范 3.框架公用库更新要求与规范 4.本框架在实际的工作中综合应用 5.为提高工作效率,怎么样结合本框架提高工作效率
  • 基于layui+asp.net mvc实现个人博客系统

    万次阅读 2017-07-13 21:48:38
    System.Web.Mvc; namespace WuBlog.Controllers { public class ArticleController : BaseController { private readonly IRepository<Article> _articleRepository; private readonly ...

    功能如下:

    后台:

    1.文章管理
    2.分类管理
    3.设置
    4.日志管理

    前台

    1.显示后台发布的文章信息
    2.评论功能


    项目类图:

    放大查看
    这里写图片描述

    ArticleController.cs

    using WuBlog.Core;
    using WuBlog.Models;
    using WuBlog.Service.Interfaces;
    using WuBlog.Service.Messaging.Request;
    using WuBlog.ViewModels;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace WuBlog.Controllers
    {
        public class ArticleController : BaseController
        {
    
            private readonly IRepository<Article> _articleRepository;
            private readonly IRepository<Category> _categoryRepository;
            private readonly IArticleService _articleService;
            public ArticleController(IRepository<Article> articleRepository, IRepository<Category> categoryRepository,
                IArticleService articleService)
            {
                _articleRepository = articleRepository;
                _categoryRepository = categoryRepository;
                _articleService = articleService;
            }
            public ActionResult List(int pageIndex = 1, int pageSize = 15)
            {
                //var query = _articleRepository.Table;
                var setting = GetSetting();
                if (setting != null)
                    pageSize = setting.ManagePageSize;
    
                var request = new GetPageArticlesRequest(pageIndex, pageSize);
                #region Filter
                var title = Request["title"];
                var category = Request["category"];
                var state = Request["state"];
                int cId;
                int s;
    
                if (!string.IsNullOrEmpty(title))
                {
                    request.Title = title;
                    ViewBag.ArticleTitle = title;
                }
                if (int.TryParse(category, out cId) && cId != 0)
                {
                    request.CategoryId = cId;
                    ViewBag.CagegotyId = cId;
                }
                if (int.TryParse(state, out s) && s != 0)
                {
                    request.Status = s;
                    ViewBag.State = s;
                }
    
                //排序
                var field = Request["field"];
                var sort = Request["sort"];
    
                var createTimeSort = "desc";
    
                if (field != null && sort != null)
                {
                    if (field == "CreateTime" && (sort == "asc" || sort == "desc"))
                    {
                        request.Sort = new Sort("CreateTime", sort == "asc" ? SortMode.Asc : SortMode.Desc);
                        createTimeSort = sort == "asc" ? "desc" : "asc";
                    }
                }
                ViewBag.CreateTimeSort = createTimeSort;
                #endregion
    
                var response = _articleService.GetPageArticles(request);
    
                ViewBag.Categories = _categoryRepository.FindAll();
    
                return View(response.Pages);
            }
            public ActionResult Create()
            {
                ViewBag.Categories = _categoryRepository.FindAll();
                return View();
            }
            [HttpPost]
            [ValidateAntiForgeryToken]
            [ValidateInput(false)]
            public ActionResult Create(ArticleModel model)
            {
                var article = new Article
                {
                    Title = model.Title,
                    Content = model.Content,
                    Author = model.Author,
                    CreateTime = DateTime.Now,
                    IsTop = model.IsTop,
                    State = model.State,
                    Hits = model.Hits,
                    Tags = model.Tags,
                    CategoryId = model.CategoryId,
                    Sort = model.Sort,
                    MetaTitle = model.MetaTitle,
                    MetaKeywords = model.MetaKeywords,
                    MetaDescription = model.MetaDescription
                };
    
                _articleService.Insert(article);
    
                return RedirectToAction("List");
            }
            public ActionResult Edit(string articleId)
            {
                int id;
                if (int.TryParse(articleId, out id))
                {
                    var article = _articleRepository.FindById(id);
                    ViewBag.Categories = _categoryRepository.FindAll();
                    if (article != null)
                        return View(article);
                }
                return RedirectToAction("NotFound", "Message");
            }
            [HttpPost]
            [ValidateAntiForgeryToken]
            [ValidateInput(false)]
            public ActionResult Edit(ArticleModel model)
            {
                var article = _articleRepository.FindById(model.Id);
    
                article.Title = model.Title;
                article.Content = model.Content;
                article.Author = model.Author;
                article.IsTop = model.IsTop;
                article.State = model.State;
                article.Hits = model.Hits;
                article.Tags = model.Tags;
                article.CategoryId = model.CategoryId;
                article.Sort = model.Sort;
                article.MetaTitle = model.MetaTitle;
                article.MetaKeywords = model.MetaKeywords;
                article.MetaDescription = model.MetaDescription;
    
                _articleRepository.Update(article);
    
                return RedirectToAction("List");
            }
        }
    }

    CategoryController.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using WuBlog.Core;
    using WuBlog.Models;
    using WuBlog.Core.Extension;
    using WuBlog.ViewModels;
    using WuBlog.Helper;
    
    namespace WuBlog.Controllers
    {
        public class CategoryController : BaseController
        {
            private readonly IRepository<Category> _categoryRepository;
            private readonly IRepository<Article> _articleRepository;
    
            public CategoryController(IRepository<Category> categoryRepository, IRepository<Article> articleRepository)
            {
                _categoryRepository = categoryRepository;
                _articleRepository = articleRepository;
            }
    
    
            // GET: Category
            public ActionResult List(int pageIndex = 1, int pageSize = 15)
            {
                var setting = GetSetting();
                if (setting != null)
                    pageSize = setting.ManagePageSize;
    
                var query = _categoryRepository.Table;
    
                var list = query.OrderByDescending(p => p.IsTop)
                    .ThenByDescending(p => p.Sort)
                    .ToPagedList(pageIndex, pageSize, true);
    
                return View(list);
            }
    
            public ActionResult Create()
            {
                return View();
            }
            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create(CategoryModel model)
            {
                if (model == null)
                    throw new ArgumentNullException("model");
    
                if (model.CategoryName.Length > 15)
                {
                    ViewBag.IsError = true;
                    return View();
                }
    
                var entity = new Category
                {
                    CategoryName = model.CategoryName,
                    IsTop = model.IsTop,
                    Sort = model.Sort,
                    CreateTime = DateTime.Now
                };
    
                _categoryRepository.Insert(entity);
    
                return RedirectToAction("List");
            }
    
            public ActionResult Edit()
            {
                var id = Request["id"];
                int cId = 0;
                if (string.IsNullOrEmpty(id))
                    return RedirectToAction("List");
                if (!int.TryParse(id, out cId))
                    return RedirectToAction("List");
                var entity = _categoryRepository.FindById(cId);
    
                return View(entity);
            }
    
            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Edit(CategoryModel model)
            {
                if (model == null)
                    throw new ArgumentNullException("model");
                if (model.CategoryName.Length > 15)
                {
                    ViewBag.IsError = true;
                    return View();
                }
    
                var entity = _categoryRepository.FindById(model.Id);
                entity.CategoryName = model.CategoryName;
                entity.IsTop = model.IsTop;
                entity.Sort = model.Sort;
    
                _categoryRepository.Update(entity);
    
                return RedirectToAction("List");
    
            }
            [HttpPost]
            public ActionResult Delete()
            {
                var id = Request["id"];
                if (string.IsNullOrEmpty(id))
                    return Json(new { success = false, message = "删除失败,请刷新页面重试!" });
                int cId;
                if (!int.TryParse(id, out cId))
                    return Json(new { success = false, message = "非法参数,请刷新页面重试!" });
    
                var exists = _articleRepository.Table.Any(p => p.CategoryId == cId);
                if (exists)
                    return Json(new { success = false, message = "该分类下存在文章,请先删除文章!" });
    
                _categoryRepository.Delete(p => p.Id == cId);
    
                return Json(new { success = true, message = "删除成功!" });
            }
    
            [HttpGet]
            public ActionResult CheckName()
            {
                var value = Request["name"];
                if (string.IsNullOrEmpty(value))
                    return Json(new { success = false, message = "名称可用!" }, JsonRequestBehavior.AllowGet);
                var flag = false;
                var query = _categoryRepository.Table;
                var id = Request["id"];
                if (!string.IsNullOrEmpty(id))
                {
                    var cId = Convert.ToInt32(id);
                    if (query.Any(p => p.Id == cId && p.CategoryName == value.Trim()))
                        flag = false;
                    else
                        flag = query.Any(p => p.CategoryName == value.Trim());
                }
                else
                {
                    flag = query.Any(p => p.CategoryName == value.Trim());
                }
                return Json(new { success = flag, message = flag ? "分类名称已存在" : "名称可用!" }, JsonRequestBehavior.AllowGet);
            }
        }
    }

    Article视图文件夹:

    Create.cshtml

    @{
        ViewBag.Title = "发表文章";
        Layout = "~/Views/Shared/_ManageLayoutPage.cshtml";
        var categories = ViewBag.Categories as IList<WuBlog.Models.Category>;
    }
    <blockquote class="layui-elem-quote blog-manage-breadcrumb">
        <span class="layui-breadcrumb">
            <a href="@Url.Action("List","Article")">文章管理</a>
            <a><cite>创建文章</cite></a>
        </span>
    </blockquote>
    <fieldset class="layui-elem-field layui-field-title">
        <legend>创建文章</legend>
    </fieldset>
    
    @using (Html.BeginForm("Create", "Article", FormMethod.Post, new { @class = "layui-form blog-manage-form" }))
    {
        @Html.AntiForgeryToken()
        <input type="hidden" name="state" value="1" />
        <div class="layui-form-item">
            <label class="layui-form-label">文章分类</label>
            <div class="layui-input-block">
                <select name="categoryId" required lay-verify="category">
                    <option value=""></option>
                    @if (categories != null && categories.Count > 0)
                    {
                        foreach (var item in categories)
                        {
                            <option value="@item.Id">@item.CategoryName</option>
                        }
                    }
                </select>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">标题</label>
            <div class="layui-input-block">
                <input type="text" name="title" lay-verify="title" autocomplete="off" placeholder="这里输入文章的标题,注意啦,别做标题党了..." class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">作者</label>
            <div class="layui-input-block">
                <input type="text" name="author" lay-verify="author" placeholder="这里输入文章作者哦..." autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">标签</label>
            <div class="layui-input-block">
                <input type="text" name="tags" lay-verify="tags" placeholder="这里是输入标签的呢,如果有多个标签的话,就用逗号分割开吧,记得她是英文逗号才有效的呢..." autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">浏览量</label>
            <div class="layui-input-block">
                <input type="number" name="hits" lay-verify="number" value="0" autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">排序值</label>
            <div class="layui-input-block">
                <input type="number" name="sort" lay-verify="number" value="0" min="0" placeholder="这里输入的数值越高,排序的位置就越前哦.." autocomplete="off" class="layui-input" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">置顶</label>
            <div class="layui-input-block">
                <input type="checkbox" name="isTop" value="true" lay-skin="switch" title="置顶" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">SEO标题</label>
            <div class="layui-input-block">
                <input type="text" name="metaTitle" placeholder="这里写文章的SEO标题..." autocomplete="off" class="layui-input" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">SEO关键字</label>
            <div class="layui-input-block">
                <input type="text" name="metaKeywords" placeholder="这里写文章的SEO关键字..." autocomplete="off" class="layui-input" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">SEO描述</label>
            <div class="layui-input-block">
                <input type="text" name="metaDescription" placeholder="这里写文章SEO描述..." autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item layui-form-text">
            <label class="layui-form-label">内容</label>
            <div class="layui-input-block">
                <textarea class="layui-textarea layui-hide" required lay-verify="content" id="content" name="content"></textarea>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button type="submit" lay-submit="" class="layui-btn">发布</button>
                <button type="submit" lay-submit="" class="layui-btn" lay-filter="draft">存草稿</button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
            </div>
        </div>
    }
    @section scripts{
        <script>
            layui.use(['form', 'layedit', 'jquery'], function () {
                var form = layui.form()
                , layer = layui.layer
                , layedit = layui.layedit
                , $ = layui.jquery;
    
                //自定义验证规则
                form.verify({
                    category: function (value) {
                        if (value === '') return '请选择分类啦^_^';
                    },
                    title: function (value) {
                        if (value.length < 5) return '标题至少也得5个字符吧';
                        if (value.length > 50) return '标题写得太多啦,不要超过50个字符好吗?';
                    },
                    author: function (value) {
                        if (value === '') return '至少得告诉人家,这篇文章是谁写的吧?';
                    },
                    tags: function (value) {
                        if (value === '') return '给她贴个标签呗,可以用逗号分割哦。';
                    },
                    content: function (value) {
                        if (value === '') return '既然写文章、发博客,总得写点什么吧?';
                        if (value.length <= 30) return '你写的字数太少啦,起码也得写上30个字符吧。';
                    }
    
                });
    
                //创建一个编辑器
                layedit.build('content', {
                    height:600,
                    uploadImage: {
                        url: '@Url.Action("UploadImage", "Upload")'
                    }
                });
    
                //监听提交
                form.on('submit(draft)', function (data) {
    
                    //将状态设置为2
                    $('form input[name=state]').val('2');
                    return true;
                });
    
                var $item = $('.layui-nav > .layui-nav-item');
                $item.removeClass('layui-this').eq(1).addClass('layui-this');
            });
        </script>
    }

    Edit.cshtml

    @model WuBlog.Models.Article
    @{
        ViewBag.Title = "编辑文章";
        Layout = "~/Views/Shared/_ManageLayoutPage.cshtml";
        var categories = ViewBag.Categories as IList<WuBlog.Models.Category>;
    }
    <blockquote class="layui-elem-quote blog-manage-breadcrumb">
        <span class="layui-breadcrumb">
            <a href="@Url.Action("List","Article")">文章管理</a>
            <a><cite>编辑文章</cite></a>
        </span>
    </blockquote>
    <fieldset class="layui-elem-field layui-field-title">
        <legend>编辑文章</legend>
    </fieldset>
    
    @using (Html.BeginForm("Edit", "Article", FormMethod.Post, new { @class = "layui-form blog-manage-form" }))
    {
        @Html.AntiForgeryToken()
        <input type="hidden" name="id" value="@Model.Id" />
        <input type="hidden" name="state" value="@Model.State" />
        <div class="layui-form-item">
            <label class="layui-form-label">文章分类</label>
            <div class="layui-input-block">
                <select name="categoryId" required lay-verify="category">
                    <option value=""></option>
                    @if (categories != null && categories.Count > 0)
                    {
                        foreach (var item in categories)
                        {
                            var selected = item.Id == Model.CategoryId ? "selected" : "";
                            <option value="@item.Id" @selected>@item.CategoryName</option>
                        }
                    }
                </select>
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">标题</label>
            <div class="layui-input-block">
                <input type="text" name="title" lay-verify="title" autocomplete="off" placeholder="这里输入文章的标题,注意啦,别做标题党了..." class="layui-input" value="@Model.Title" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">作者</label>
            <div class="layui-input-block">
                <input type="text" name="author" lay-verify="author" placeholder="这里输入文章作者哦..." autocomplete="off" class="layui-input" value="@Model.Author" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">标签</label>
            <div class="layui-input-block">
                <input type="text" name="tags" lay-verify="tags" placeholder="这里是输入标签的呢,如果有多个标签的话,就用逗号分割开吧,记得她是英文逗号才有效的呢..." autocomplete="off" class="layui-input" value="@Model.Tags" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">浏览量</label>
            <div class="layui-input-block">
                <input type="number" name="hits" lay-verify="number" value="@Model.Hits" autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">排序值</label>
            <div class="layui-input-block">
                <input type="number" name="sort" lay-verify="number" value="@Model.Sort" min="0" placeholder="这里输入的数值越高,排序的位置就越前哦.." autocomplete="off" class="layui-input" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">置顶</label>
            <div class="layui-input-block">
                @{
                    var isTop = Model.IsTop ? "checked" : "";
                }
                <input type="checkbox" name="isTop" value="true" lay-skin="switch" @isTop title="置顶" />
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">SEO标题</label>
            <div class="layui-input-block">
                <input type="text" name="metaTitle" placeholder="这里写文章的SEO标题..." value="@Model.MetaTitle" autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">SEO关键字</label>
            <div class="layui-input-block">
                <input type="text" name="metaKeywords" placeholder="这里写文章的SEO关键字..." value="@Model.MetaKeywords" autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label">SEO描述</label>
            <div class="layui-input-block">
                <input type="text" name="metaDescription" placeholder="这里写文章SEO描述..." value="@Model.MetaDescription" autocomplete="off" class="layui-input">
            </div>
        </div>
        <div class="layui-form-item layui-form-text">
            <label class="layui-form-label">内容</label>
            <div class="layui-input-block">
                <textarea class="layui-textarea layui-hide" required lay-verify="content" id="content" name="content">@Model.Content</textarea>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button type="submit" lay-submit="" class="layui-btn" lay-filter="publish">发布</button>
                <button type="submit" lay-submit="" class="layui-btn" lay-filter="draft">存草稿</button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
            </div>
        </div>
                    }
    @section scripts{
        <script>
            layui.use(['form', 'layedit', 'jquery'], function () {
                var form = layui.form()
                , layer = layui.layer
                , layedit = layui.layedit
                , $ = layui.jquery;
    
                //自定义验证规则
                form.verify({
                    title: function (value) {
                        if (value.length < 5) return '标题至少也得5个字符吧';
                        if (value.length > 50) return '标题写得太多啦,不要超过50个字符好吗?';
                    },
                    category: function (value) {
                        if (value === '') return '请选择分类啦^_^';
                    },
                    author: function (value) {
                        if (value === '') return '至少得告诉人家,这篇文章是谁写的吧?';
                    },
                    tags: function (value) {
                        if (value === '') return '给她贴个标签呗,可以用逗号分割哦。';
                    },
                    content: function (value) {
                        if (value === '') return '既然写文章、发博客,总得写点什么吧?';
                        if (value.length <= 30) return '你写的字数太少啦,起码也得写上30个字符吧。';
                    }
    
                });
    
                //创建一个编辑器
                layedit.build('content', {
                    height: 600,
                    uploadImage: {
                        url: '@Url.Action("UploadImage", "Upload")'
                    }
                });
    
                //监听提交
                form.on('submit(draft)', function (data) {
                    //将状态设置为2
                    $('form input[name=state]').val('2');
                    return true;
                });
    
                form.on('submit(publish)', function (data) {
                    //将状态设置为2
                    $('form input[name=state]').val('1');
                    return true;
                });
                var $item = $('.layui-nav > .layui-nav-item');
                $item.removeClass('layui-this').eq(1).addClass('layui-this');
    
            });
        </script>
    }

    List.cshtml

    @model WuBlog.Core.PagedList<WuBlog.Models.Article>
    @{
        ViewBag.Title = "文章列表";
        Layout = "~/Views/Shared/_ManageLayoutPage.cshtml";
    
    
        var categories = ViewBag.Categories as IList<WuBlog.Models.Category>;
    }
    
    <blockquote class="layui-elem-quote">
        <a href="@Url.Action("Create","Article")" class="layui-btn"><i class="layui-icon">&#xe61f;</i> 创建文章</a>
    </blockquote>
    
    <blockquote class="layui-elem-quote">
        @using (Html.BeginForm("List", "Article", FormMethod.Get, new { @class = "layui-form" }))
        {
            <div class="layui-form-item blog-manage-form-item-search">
                <div class="layui-inline">
                    <label class="layui-form-label">标题</label>
                    <div class="layui-input-inline">
                        <input type="text" name="title" lay-verify="title" autocomplete="off" placeholder="请输入标题" value="@ViewBag.ArticleTitle" class="layui-input">
                    </div>
                </div>
                <div class="layui-inline">
                    <label class="layui-form-label">分类</label>
                    <div class="layui-input-block">
                        <select name="category" lay-filter="category">
                            <option value="0">全部分类</option>
                            @if (categories != null && categories.Count > 0)
                            {
                                foreach (var item in categories)
                                {
                                    var selected = item.Id == ViewBag.CagegotyId ? "selected" : "";
                                    <option value="@item.Id" @selected>@item.CategoryName</option>
                                }
                            }
                        </select>
                    </div>
                </div>
                <div class="layui-inline">
                    <label class="layui-form-label">状态</label>
                    <div class="layui-input-block">
                        @{
                            string all = "";
                            string normal = "";
                            string draft = "";
                            var state = ViewBag.State;
                            if (state == null)
                            {
                                all = "selected";
                            }
                            if (state == 1)
                            {
                                normal = "selected";
                            }
                            if (state == 2)
                            {
                                draft = "selected";
                            }
                        }
                        <select name="state" lay-filter="state">
                            <option value="0" @all>全部状态</option>
                            <option value="1" @normal>正常</option>
                            <option value="2" @draft>草稿</option>
                        </select>
                    </div>
                </div>
                <div class="layui-inline">
                    <button class="layui-btn" lay-submit="" lay-filter="manage-search">
                        <i class="layui-icon">&#xe615;</i> 搜索
                    </button>
                </div>
            </div>
                            }
    </blockquote>
    
    <div class="blog-manage-table table-responsive">
        <table class="table table-hover table-striped table-bordered">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>所属分类</th>
                    <th>标题</th>
                    <th>作者</th>
                    @{
                        var url = Request.Url.ToString();
                        if (url.IndexOf("field") == -1)
                        {
                            url = url + (url.IndexOf('?') == -1 ? "?" : "&") + "field=CreateTime&sort=" + ViewBag.CreateTimeSort;
                        }
                        else
                        {
                            url = url.Replace(url.Substring(url.LastIndexOf("sort=")), "sort=" + ViewBag.CreateTimeSort);
                        }
                    }
                    <th><a href="@url">创建时间</a></th>
                    <th>浏览量</th>
                    <th>状态</th>
                    <th>排序值</th>
                    <th style="text-align:center;">置顶</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                @if (Model.Items != null && Model.Items.Count > 0)
                {
                    foreach (var item in Model.Items)
                    {
                        <tr>
                            <td>@item.Id</td>
                            <td>@item.Category.CategoryName</td>
                            <td>
                                <a href="@Url.Action("Edit", "Article", new { articleId = item.Id })">@item.Title</a>
                            </td>
                            <td>@item.Author</td>
                            <td>@item.CreateTime.ToString("yyyy-MM-dd HH:mm")</td>
    
                            <td>@item.Hits</td>
                            @{
                                var state = item.State == 1 ? "正常" : "草稿";
                            }
                            <td>@state</td>
                            <td>@item.Sort</td>
                            @{
                                var topText = item.IsTop ?
                                    "<i class=\"layui-icon\" style=\"color:green;\">&#xe616;</i>" :
                                    "<i class=\"layui-icon\" style=\"color:red;\">&#x1007;</i>";
                            }
                            <td style="text-align:center;">@Html.Raw(topText)</td>
                            <td>
                                <a href="@Url.Action("Detail", "Home", new { articleId = item.Id })" target="_blank">预览</a>
                                <a href="@Url.Action("Edit", "Article", new { articleId = item.Id })">编辑</a>
                                <a href="javascript:;" data-id="@item.Id" data-opt="del">删除</a>
                            </td>
                        </tr>
                                    }
                                }
                                else
                                {
                                    <tr>
                                        <td colspan="10" style="text-align:center;">暂无数据</td>
                                    </tr>
                                }
            </tbody>
        </table>
        <div class="blog-manage-page">
            <div id="page" style="padding-left:20px;"></div>
        </div>
    </div>
    @section scripts{
        <script>
            layui.use(['laypage','jquery','layer'], function () {
                var laypage = layui.laypage
                ,$ = layui.jquery
                ,layer = layui.layer;
                //laypage
                laypage({
                    cont: 'page'
                    ,curr:@Model.CurrentPage
                    , pages: @Model.TotalPages //总页数
                    , groups: 5 //连续显示分页数
                    ,jump:function(obj, first){
                        //得到了当前页,用于向服务端请求对应数据
                        var curr = obj.curr;
                        if(!first){
                            //layer.msg('第 '+ obj.curr +' 页');
                            location.href = '/manage/article_list_'+curr+'_'+@Model.ItemsPerPage;
                        }
                    }
                });
                //绑定删除事件
                $('a[data-opt=del]').each(function(){
                    $(this).on('click',function(){
                        var $this =$(this);
                        var id = $this.data('id');
                        var msg = '你真的要把  <span style="color:red;">' + id + '</span> 给删除吗?<img src="' + location.origin + '/Plugins/layui/images/face/4.gif" alt="[可怜]">'
                        var title = '萌萌的提示<img src="' + location.origin + '/Plugins/layui/images/face/7.gif" alt="[害羞]">'
                        layer.confirm(msg, {icon: 3, title:title}, function(index){
                            //do something
                            layer.msg('你好狠,居然要删除我!!!');
                            layer.close(index);
                        });
                    });
                });
    
                var $item = $('.layui-nav > .layui-nav-item');
                $item.removeClass('layui-this').eq(1).addClass('layui-this');
            });
    
        </script>
    }

    运行结果如图:

    前台

    这里写图片描述


    这里写图片描述


    后台

    这里写图片描述


    这里写图片描述


    这里写图片描述


    这里写图片描述


    这里写图片描述

    展开全文
  • ASP.NET Core是一个由微软创建的,用于构建Web应用程序,API,微服务的Web框架。它使用常见的模式,例如MVC(模型-视图-控制器),依赖注入,和一个由中间件构成它基于Apa...
  • 此处分享一套SpringMVC+LayUI+MySQL完整项目源码,以及其部署方式。适用于本硕毕业设计。 此项目已集成了shiro scheduied 事务等常用插件。堪称SSM的完美模板。 下载地址:点我下载 第一步:解压 解压到任意目录...
  • 源码GIT地址: https://github.com/sunkaixuan/SugarSite 技术介绍 Layui 个人而言不喜欢引用一堆东西,越简洁越好,layui正好能够满足我的这种需求,它是一款轻量级UI,JS部分都是采用模块化设计(AMD) ,对...
  • MVC+EF+LayUI框架的应用案例 全栈工程师,2010年从事软件开发以...
  • Spring MVC5.1 Mybatis3.5.2 layui2.5.6 webuploader 实现功能 前台 登陆 注册 注销 关键词搜索 分类筛选 查看电影详情 在线播放 下载视频 视频选集 收藏、取消收藏电影 收藏中心 历史记录 修改登陆密码 修改个人...
  • ASP.NET WebAPI+mvc4.0+EasyUI快速开发框架+通用权限管理系统源码
  • 1.相关技术,MVC、EF、Layer、MEF讲解 2.框架使用,规范 3.框架公用库更新要求与规范 4.本框架在实际的工作中综合应用 5.为提高工作效率,怎么样结合本框架提高工作效率...
  • 源码GIT地址:  https://github.com/sunkaixuan/SugarSite 技术介绍 Layui 个人而言不喜欢引用一堆东西,越简洁越好,layui正好能够满足我的这种需求,它是一款轻量级UI,JS部分都是采用模块化设计(AMD) ,对...
  • 毕业设计论坛源码jsp 此为使用JEESITGE开发的论坛系统 引言 JeeSite 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE)采用...
  • 这篇是入门文章,适合不了解或稍微有些了解MVC和ORM的人(比如我自己…) 距离上一篇写作已经相差2年了,2年了哈,感慨很多,没想到上一遍文章会有那么多人在看(我还特意查看了下访问量,不少呢啊),今天我写一些...
  • 使用ok-admin + ASP.NET MVC构建的通用权限后台管理系统RightControl后台layui模板不太好看,换成重写一遍。项目地址: : 技术选型 MVC5 Mysql Dapper DapperExtensions Autofac 软件架构 菜单结构 系统管理 机构...
  • Java Web图书管理系统(MVC框架)-包含源码

    千次阅读 多人点赞 2020-05-15 11:55:44
    前言:这是大二写的系统,因此这个系统并没有用到很多框架,只是使用了MVC框架,前端使用的是JSP技术,操作数据库使用的是druid连接池,将前端信息转发到后端将信息封装用到了beanutils工具包,前端与后端进行异步...
  • 闲言碎语:大学的第二个完整的项目终于完成啦,虽然是在看着别人的代码一点一点写的,功夫不负有心人,最终还是完成了,SSM框架也是现在比较成熟的框架,现在有了 SpringBoot(菜鸡还没学),Layui 作为前端框架,虽然有点过时...
  • 这篇文章主要介绍了关于php源码区分平台MVC结构的介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下主要:模型单例工厂目录结构优化区分平台(前台,后台....)--------------:------------------...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 813
精华内容 325
关键字:

layuimvc源码