一、列表显示-View:List.aspx

  此功能实现起来比较简单,之前我们在Site.Master添加了如下一行代码:

<li><%: Html.ActionLink("News", "List", "News")%></li>

  其中"List"就是指定Action,最后面的"News“指定的是Controller,所以,只需要在NewsController中实现List方法即可。以下代码是NewsController类中的List方法。

//读取CMSNews表中的所有数据行并按ID降序排列
public ActionResult List()
{
    return View(db.CMSNews.OrderByDescending(Model => Model.ID).ToList());
}

  db是在类NewsController中声明的成员:

MVCDemoEntities db = new MVCDemoEntities();

  MVCDemoEntities哪里来的呢,查看以下Web.config中的链接字符串:

<add name="MVCDemoEntities" connectionString="metadata=res://*/Models.MVCDemoModel.csdl|res://*/Models.MVCDemoModel.ssdl|res://*/Models.MVCDemoModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\MSSQLSERVER2008;Initial Catalog=MVCDemo;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

  

  到此列表显示功能完成,我这里没有更改View中的代码,您可以根据需要去更改,比如把表格改成div,删除一些不想再列表中显示的列等。

     另外,自动生成的代码我都没改,实际上,像<%: Html.ActionLink("Edit", "Edit", new { id=item.ID }) %>ActionLink中的参数可以自定义的。

二、实现添加功能 - View:Create.aspx

  1)View中我把自动生成的验证代码去掉,使用了JQuery的表单验证功能,另外<form>也去掉自动生成的代码而改为下面的代码:

//执行NewsController中的Create方法
<form id="frmCreate" action="<%=Url.Action("Create","News")%>" method="post">

  代码如下:

     <!--添加JQuery脚本引用-->
    <script src="http://www.cnblogs.com/Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script src="http://www.cnblogs.com/Scripts/jquery.validate.min.js" type="text/javascript"></script>
    <!--JQuery表单验证脚本-->
    <script type="text/javascript">
        $(document).ready(
            function () {
                $("#frmCreate").validate({
                    rules: {
                        NewsTitle: { required: true },
                        NewsCategory: { required: true },
                        NewsContent: { required: true },
                        PubDate: { required: true,
                            date: true
                        }
                    },
                    messages: {
                        NewsTitle: '此项不能为空',
                        NewsCategory: '此项不能为空',
                        NewsContent: '此项不能为空',
                        PubDate: {
                            required: '此项不能为空',
                            date: '日期格式错误'
                        }
                    },
                    success: function (label) {
                        label.addClass("valid").text("√")
                    }
                    //submitHandler: function () { alert("操作已完成!") }
                }
            )
            }
        )
    </script>

  NewsController中Create方法实现代码:

//
        // POST: /News/Create

[HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {
                // TODO: Add insert logic here
                CMSNews news = new CMSNews();
                news.NewsTitle = collection["NewsTitle"];
                news.NewsCategory = collection["NewsCategory"];
                news.NewsContent = collection["NewsContent"];
                news.PubDate = DateTime.Parse(collection["PubDate"]);
                db.AddToCMSNews(news);
                db.SaveChanges();
                return RedirectToAction("List");
            }
            catch
            {
                return View();
            }
        }

  运行后界面,输入错误时:

  

  输入正确时:

  

  表单中的HTML代码:

<fieldset>
        <legend>Fields</legend>
        <div class="editor-label">
            <%: Html.LabelFor(model => model.NewsTitle) %>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.NewsTitle)%>
        </div>
        <div class="editor-label">
            <%: Html.LabelFor(model => model.NewsCategory) %>
        </div>
        <div class="editor-field">
            <%: Html.DropDownListFor(model => model.NewsCategory,
                                        new SelectList(new MVC2Demo.Models.MVCDemoEntities().CMSNewsCategory.ToList(),
                        "CategoryCode","CategoryName"),"-- Select Category --")%>
        </div>
        <div class="editor-label">
            <%: Html.LabelFor(model => model.NewsContent) %>
        </div>
        <div class="editor-field">
            <%: Html.TextAreaFor(model => model.NewsContent, new { Style = "width:200px;height:100px" })%>
        </div>
        <div class="editor-label">
            <%: Html.LabelFor(model => model.PubDate) %>
        </div>
        <div class="editor-field">
            <%: Html.TextBoxFor(model => model.PubDate) %>
        </div>
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>

  CMSNewsCategory是新闻分类表只有两列:编码和名称,编码是主键,只需要Update一下Model,选中此表即可:

  双击MVCDemoModel.edmx,在Model Browser中右击EntityContainer:MVCDemoEntities,右键菜单选择【Update Model From Database】,在出现的窗口中展开表并选中CMSNewsCategory,然后【Finish】。

   下一篇中,实现浏览、修改和删除功能。

转载于:https://www.cnblogs.com/Ferry/archive/2010/05/30/1747570.html

ASP.NET MVC 2入门演练 3 - 列表和添加功能相关推荐

  1. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  2. ASP.NET MVC 5 入门指南汇总

    原文:ASP.NET MVC 5 入门指南汇总 经过前一段时间的翻译和编辑,我们陆续发出12篇ASP.NET MVC 5的入门文章.其中大部分翻译自ASP.NET MVC 5 官方教程,由于本系列文章 ...

  3. ASP.NET MVC 5 入门教程 (2) 控制器Controller

    原文:ASP.NET MVC 5 入门教程 (2) 控制器Controller 文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get ...

  4. ASP.NET MVC 5 入门教程 (3) 路由route

    文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-route.html 上一节:ASP.NET MVC 5 入门 ...

  5. .net mvc html访问数据库,【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上...

    图挂了的说明: 我是在Word中写的本系列文章,然后转成的HTML,所以图片都存在于 fineui.com 服务器,由于临时访问量太多,服务器喘不过气了.... 你可以稍后访问,实在是抱歉...... ...

  6. apache2.4.9 开启path_info访问_【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)...

    新建项目 打开VS2015,找到菜单项[文件->新建->项目],打开向导对话框: 注意我们的选择项: 运行平台:.NET FrameWork 4.5 项目模板:ASP.NET Web Ap ...

  7. asp.net mvc+httpclient+asp.net mvc api入门篇

    第一步:创建一个ASP.NET MVC API项目 第二步:在api项目里面创建一个类 public class Student{public int Id { get; set; }public s ...

  8. 【公开课视频】ASP.NET MVC+EF入门-20130315

    20130315 .Net MVC+EF 入门公开课 适合:.Net MVC入门者 一.内容概要: 1.MVC设计模式 Model 是指 要处理的业务代码和数据操作代码 View 视图 主要是指的 跟 ...

  9. ASP.NET MVC XML绑定Action参数列表

    昨天查看了 ASP.NET MVC 的生命周期,并没有找到类似的解决方案. 不过今天在 stackoverflow上找到了解决方案,没耐心的同学可以直接戳原文拷贝代码,原文地址:How to pass ...

最新文章

  1. windows 2008 64位oracle11g部署问题(3)之ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务...
  2. 国内用得最多的框架,它排第一!
  3. 怎样安全的使用可变参数宏__VA_ARGS__
  4. xftp怎么有root权限_许多人都不懂的Linux系统里的特殊权限!!你真的了解嘛?...
  5. 优秀网页设计:带给你灵感的联系页面设计
  6. IndexError: tensors used as indices must be long, byte or bool tensors
  7. 一年发表603篇论文、研究被引近3.9万次,学者操纵引文遭质疑
  8. Jmeter 生成HTML性能测试报告
  9. 这个机器人不学数据集,“纯玩”get各类家务技能,LeCun觉得很赞
  10. 如何在Vue中使用websocket?
  11. [PHP]图片上传代码【原创】
  12. 浅谈css中一个元素如何在其父元素居中显示
  13. 备课好帮手,免费分享 下载
  14. 基于Tensorflow的MINIST手写体识别
  15. jQuery按住滑块拖动验证插件
  16. phpQuery的用法
  17. 软通动力华为项目组Java开发面试总结
  18. 用HBuilderX代替微信开发者工具
  19. HW-LCD-070 7寸液晶屏 数据手册
  20. 计算机毕业设计基于Python实现的药店|药房管理系统

热门文章

  1. JavaEE Servlet 并发问题
  2. 目录:SpringBoot学习目录
  3. 《结对-结对编项目作业名称-开发过程》
  4. Windows 10如何禁用Microsoft Edge标签页预览
  5. 如何画好科技论文中的插图
  6. (转)目前比较全的CSS重设(reset)方法总结
  7. 微信在公众号增开了新广告位 这次是在图文消息头部
  8. 服务器日志清理及IIS日志的清理
  9. 【IBM Tivoli Identity Manager 学习文档】15 用户管理
  10. ADO.net 中数据库连接方式