博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[实战]MVC5+EF6+MySql企业网盘实战(23)——文档列表
阅读量:6089 次
发布时间:2019-06-20

本文共 3075 字,大约阅读时间需要 10 分钟。

写在前面

上篇文章实现了图片列表,这篇文章实现文档列表将轻车熟路,因为逻辑基本相似,只是查询条件的不同。这里将txt,doc,docx,ppt,pptx,xls,xlsx的文件都归为文档列表中。

系列文章

[实战]MVC5+EF6+MySql企业网盘实战(23)——文档列表

实现

代码与图片列表基本相同,这里在考虑是否使用一个模板,不过想想,为了以后为每种类型的文件列表做扩展,还是单独放在一个controller中了。再仔细想想有没有更好的实现方式。这里就先这样来做了。

前端代码

@{    ViewBag.Title = "Lists";    Layout = "~/Views/Shared/_Layout.cshtml";}

服务端代码

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Web.Script.Serialization;using Wolfy.NetDisk.BLL;using Wolfy.NetDisk.IBLL;using Wolfy.NetDisk.Model;using Wolfy.NetDisk.Site.Models;namespace Wolfy.NetDisk.Site.Controllers{    public class DocumentController : Controller    {        private IMyFileServiceRepository _myFileServiceRepository = new MyFileServiceRepository();        private ILogServiceRepository _logServiceRepository = new LogServiceRepository();        private IFileTypeServiceRepository fileTypeServiceRepository = new FileTypeServiceRepository();        //        // GET: /Images/        public ActionResult Lists()        {            UserInfo user = Session["user"] as UserInfo;            if (user == null)            {                return RedirectToAction("Login", "UserInfo");            }            return View();        }        [HttpGet]        public JsonResult GetDocuments()        {            UserInfo userInfo = Session["user"] as UserInfo;            int page = Convert.ToInt32(Request.Params["page"]);            if (page <= 0)            {                page = 1;            }            if (userInfo == null)            {                RedirectToAction("Login", "UserInfo");            }            int pageSize = 10;            int recordCount = 0;            var documentPaged = _myFileServiceRepository.FindPaged
(page, pageSize, out recordCount, x => x.User.Id == userInfo.Id && x.IsDelete == false && (x.FileIcon.Contains("DocType.png") || x.FileIcon.Contains("XlsType.png") || x.FileIcon.Contains("PptType.png") || x.FileIcon.Contains("PdfType.png") || x.FileIcon.Contains("TxtType.png")), false, x => x.CreateDt); int totalPage = Convert.ToInt32(Math.Ceiling(recordCount * 1.0 / pageSize)); List
lstMyFileViewModel = new List
(); foreach (var item in documentPaged) { lstMyFileViewModel.Add(new MyFileViewModel() { Id = item.Id, FileIcon = item.FileIcon, FileServerUrl = "/NetDisk/" + item.FileMd5 + item.FileExt, Name = item.Name, FileThumnailUrl = string.Empty, Size = item.FileSize, Dt = item.CreateDt }); } return new JsonResult() { Data = new JavaScriptSerializer().Serialize(new { _data = lstMyFileViewModel, _code = 200, total = totalPage }), JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } }}

测试

总结

实现起来还是比较简单的,马上就2016年了,祝大家元旦快乐。

转载于:https://www.cnblogs.com/wolf-sun/p/5092633.html

你可能感兴趣的文章
微信分享,二次分享(移动web端)
查看>>
蚂蚁金服智能推荐引擎解决方案与实践
查看>>
PC比电脑好玩的秘密是什么?答案就是因为有这些神奇的网站!
查看>>
30秒的PHP代码片段(2)数学 - Math
查看>>
助力中文文字识别突破,美团公开首个真实场景招牌图像数据集
查看>>
IOS常用框架集合
查看>>
Laravel 深入核心系列教程
查看>>
webpack 性能提速
查看>>
一次下载多个文件的解决思路-JS
查看>>
记录使用Vue相关API开发项目时遇到的问题难点整理(不定时更新)
查看>>
《Java8实战》-第五章读书笔记(使用流Stream-02)
查看>>
vue轮播图插件之vue-awesome-swiper
查看>>
Cabloy.js:基于EggBorn.js开发的一款顶级Javascript全栈业务开发框架
查看>>
HTTP相关知识汇总
查看>>
使用wagon-maven-plugin部署Java项目到远程服务器
查看>>
新书推荐 |《PostgreSQL实战》出版(提供样章下载)
查看>>
JavaScript/数据类型/function/closure闭包
查看>>
30个免费资源:涵盖机器学习、深度学习、NLP及自动驾驶
查看>>
读zent源码库之Dialog组件实现
查看>>
express中间层搭建前端项目3
查看>>