• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET MVC5网站开发添加文章(八)

ASP.NET MVC5网站开发添加文章(八)

作者:洞庭夕照 字体:[增加 减小] 来源:互联网 时间:2017-05-11

洞庭夕照通过本文主要向大家介绍了精通asp.net mvc5,精通asp.net mvc5 pdf,pro asp.net mvc5,asp net mvc5,asp mvc5等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、添加文章
1、KindEditor富文本编辑器

到官方网站http://kindeditor.net/down.php下载最新版本,解压后把代码复制到项目的Scripts文件夹下。

2、添加界面的显示。

在ArticleController中添加Add 方法

/// <summary>
  /// 添加文章
  /// </summary>
  /// <returns>视图页面</returns>
  public ActionResult Add()
  {
   return View();
  }
</div>

右键添加Article的强类型视图,代码如下

@section scripts{
 <script type="text/javascript" src="~/Scripts/KindEditor/kindeditor-min.js"></script>
 <script type="text/javascript">
  //编辑框
  KindEditor.ready(function (K) {
   window.editor = K.create('#Content', {
    height: '500px'
   });
  });
 </script>
}

@model Ninesky.Models.Article
@using (Html.BeginForm())
{ @Html.AntiForgeryToken()
 <div class="form-horizontal" role="form">
  <h4>添加文章</h4>
  <hr />
  @Html.ValidationSummary(true)
  <div class="form-group">
   <label class="control-label col-sm-2" for="CommonModel_CategoryID">栏目</label>
   <div class="col-sm-10">
    <input id="CommonModel_CategoryID" name="CommonModel.CategoryID" data-options="url:'@Url.Action("JsonTree", "Category", new { model="Article" })'" class="easyui-combotree" style="height: 34px; width: 280px;" />
      @Html.ValidationMessageFor(model => model.CommonModel.CategoryID)</div>
  </div>
  <div class="form-group">
   @Html.LabelFor(model => model.CommonModel.Title, new { @class = "control-label col-sm-2" })
   <div class="col-sm-10">
    @Html.TextBoxFor(model => model.CommonModel.Title, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.CommonModel.Title)
   </div>
  </div>


  <div class="form-group">
   @Html.LabelFor(model => model.Author, new { @class = "control-label col-sm-2" })
   <div class="col-sm-10">
    @Html.TextBoxFor(model => model.Author, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.Author)
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.Source, new { @class = "control-label col-sm-2" })
   <div class="col-sm-10">
    @Html.TextBoxFor(model => model.Source, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.Source)
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.Intro, new { @class = "control-label col-sm-2" })
   <div class="col-sm-10">
    @Html.TextAreaFor(model => model.Intro, new { @class = "form-control" })
    @Html.ValidationMessageFor(model => model.Intro)
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.Content, new { @class = "control-label col-sm-2" })
   <div class="col-sm-10">
    @Html.EditorFor(model => model.Content)
    @Html.ValidationMessageFor(model => model.Content)
   </div>
  </div>

  <div class="form-group">
   @Html.LabelFor(model => model.CommonModel.DefaultPicUrl, new { @class = "control-label col-sm-2" })
   <div class="col-sm-10">
    <img id="imgpreview" class="thumbnail" src="" />
    @Html.HiddenFor(model => model.CommonModel.DefaultPicUrl)
    <a id="btn_picselect" class="easyui-linkbutton">选择…</a>
    @Html.ValidationMessageFor(model => model.CommonModel.DefaultPicUrl)
   </div>
  </div>

  <div class="form-group">
   <div class="col-sm-offset-2 col-sm-10">
    <input type="submit" value="添加" class="btn btn-default" />
   </div>
  </div>
 </div>
}
</div>


效果如图

3、后台接受的处理。

[ValidateInput(false)]
  [HttpPost]
  [ValidateAntiForgeryToken]
  public ActionResult Add(Article article)
  {
   if(ModelState.IsValid)
   {
    //设置固定值
    article.CommonModel.Hits = 0;
    article.CommonModel.Inputer = User.Identity.Name;
    article.CommonModel.Model = "Article";
    article.CommonModel.ReleaseDate = System.DateTime.Now;
    article.CommonModel.Status = 99;
    article = articleService.Add(article);
    if (article.ArticleID > 0)
    {
     return View("AddSucess", article);
    }
   }
   return View(article);
  }
</div>


在做架构的时候DAL、BLL的base类里有Add方法,我们可以直接使用ArticleService.Add方法添加到数据库

添加文章功能就实现了,但是不能上传附件,不能选择首页图片,不能删除多余的附件。下面就来实现附件功能。

二、附件上传
目标可以上传附件(图片,文件等),文件保存到上传目录中,且数据库中保存相应记录,可以浏览文件列表,未使用的附件可以删除记录。

一、添加附件

在AttachmentController添加Upload()方法,方法方法把文件写入磁盘中把附件的记录也保存到数据库中,中间会用到读取配置文件,见《.Net MVC 网站中配置文件的读写》。

/// <summary>
  /// 上传附件
  /// </summary>
  /// <returns></returns>
  public ActionResult Upload()
  {
   var _uploadConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~").GetSection("UploadConfig") as Ninesky.Models.Config.UploadConfig;
   //文件最大限制
   int _maxSize = _uploadConfig.MaxSize;
   //保存路径
   string _savePath;
   //文件路径
   string _fileParth = "~/" + _uploadConfig.Path + "/";
   //文件名
   string _fileName;
   //扩展名
   string _fileExt;
   //文件类型
   string _dirName;
   //允许上传的类型
   Hashtable extTable = new Hashtable();
   extTable.Add("image", _uploadConfig.ImageExt);
   extTable.Add("flash", _uploadConfig.FileExt);
   extTable.Add("media", _uploadConfig.MediaExt);
   extTable.Add("file", _uploadConfig.FileExt);
   //上传的文件
   HttpPostedFileBase _postFile = Request.Files["imgFile"];
   if (_postFile == null) return Json(new { error = '1', message = "请选择文件" });
   _fileName = _postFile.FileName;
   _fileExt = Path.GetExtension(_fileName).ToLower();
   //文件类型
   _dirName = Request.QueryString["dir"];
   if (string.IsNullOrEmpty(_dirName))
   {
    _dirName = "image";
   }
   if (!extTable.ContainsKey(_dirName)) return Json(new { error = 1, message = "目录类型不存在" });
   //文件大小
   if (_postFile.InputStream == null || _postFile.InputStream.Length > _maxSize) return Json(new { error = 1, message = "文件大小超过限制" });
   //检查扩展名
   if (string.IsNullOrEmpty(_fileExt) || Array.IndexOf(((string)extTable[_dirName]).Split(','), _fileExt.Substring(1).ToLower()) == -1) return Json(new { error = 1, message = "不允许上传此类型的文件。 \n只允许" + ((String)extTable[_dirName]) + "格式。" });
   _fileParth += _dirName + "/" + DateTime.Now.ToString("yyyy-MM") + "/";
   _savePath = Server.MapPath(_fileParth);
   //检查上传目录
   if (!Directory.Exists(_savePath)) Directory.CreateDirectory(_savePath);
   string _newFileName = DateTime.Now.ToString("yyyyMMdd_hhmmss") + _fileExt;
    _savePath += _newFileName;
    _fileParth += _newFile



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET MVC5 实现分页查询的示例代码
  • ASP.NET MVC5网站开发管理列表、回复及删除(十三)
  • ASP.NET MVC5网站开发我的咨询列表及添加咨询(十二)
  • ASP.NET MVC5网站开发咨询管理的架构(十一)
  • ASP.NET MVC5网站开发修改及删除文章(十)
  • ASP.NET MVC5网站开发显示文章列表(九)
  • ASP.NET MVC5网站开发添加文章(八)
  • ASP.NET MVC5网站开发文章管理架构(七)
  • ASP.NET MVC5网站开发用户修改资料和密码(六)
  • ASP.NET MVC5网站开发用户登录、注销(五)

相关文章

  • 2017-05-11asp.net中调用Office来制作3D统计图的实例代码
  • 2017-05-11ASP.NET微信公众号添加菜单
  • 2017-05-11ASP.NET下备份与还原数据库代码
  • 2017-05-11asp.net mvc 实现文件上传带进度条的思路与方法
  • 2017-05-11ASP.NET之Response.Cookies.Remove 无法删除COOKIE的原因
  • 2017-05-11ASP.NET MVC5网站开发显示文章列表(九)
  • 2017-05-11Asp.net中安全退出时清空Session或Cookie的实例代码
  • 2017-05-11asp.net4.0框架下验证机制失效的原因及处理办法
  • 2017-05-11asp.net下生成英文字符数字验证码的代码
  • 2017-05-11ASP.NET文本框密码赋默认值的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • IIS实现反向代理时Cookie域的设置方法
    • ASP.NET中验证控件的使用方法
    • NopCommerce架构分析之(四)基于路由实现灵活的插件机制
    • asp.net图片上传生成缩略图的注意事项
    • .NET中的异常和异常处理用法分析
    • Asp.net之TextBox只允许输入数字的方法总结
    • asp.net使用AJAX实现无刷新分页
    • 解读ASP.NET 5 & MVC6系列教程(4):核心技术与环境配置
    • 浅谈ASP.NET MVC应用程序的安全性
    • ASP.NET服务器控件开发(1)封装html

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有