zoukankan      html  css  js  c++  java
  • UI层ASP.NET MVC实现CRUD

    述:该节主要目的是通过ASP.Net MVC3.0快速实现增删改查

    一、创建MVC项目

          1.1、在解决方案中添加MVC3.0项目

                  vs2010中没有自带MVC3.0,下载:http://www.asp.net/mvc/mvc3

                 

                 在这里我们选择“空”模版

                

          1.2、添加相关引用

               1)由于使用的EF因此需要添加一坨相关引用,我们可以在MVC项目中的Model中添加一个ASP.NET 实体数据模型。此时VS会帮我们引用相应的程序集,完成后我再

                    删除它。

               2) 再引用我们的程序集,Cnblogs.Rdst.IBLL、Cnblogs.Rdst.BLL、Cnblogs.Rdst.Domain

                    

                     

                3、配置连接字符串

                    将Cnblogs.Rdst.Domain中的App.Config文件里的

    <connectionStrings>
        <add name="ModelContainer" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=Cnblogs-Rdst;persist security info=True;user id=sa;password=Hell0F18;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>
    拷贝到MVC项目中的web.config里的
    <configuration>节点下,如下图:

    
    

    二、添加UserInfo控制器

          2.1、在创建控制器前我们需要将解决方案编译一下。

          2.2、回到MVC项目中右键点击Controllers,创建一个名为UserInfo的控制器

                

          2.3、“模型类”选择UserInfo实体类,“数据上下文”选择ModelContainer实体上下文,在此我们选择Razor实体引擎。

                

    三、快速实现CRUD

         3.1 此时VS会帮我们生成UserInfo和View下的一些页面

              

        3.2 以下代码是UserInfoController控制器中增删改查的代码,其中注释掉的代码是vs自动生成的。

            

    复制代码
      1 using System;
      2 using System.Collections.Generic;
      3 using System.Data;
      4 using System.Data.Entity;
      5 using System.Linq;
      6 using System.Web;
      7 using System.Web.Mvc;
      8 using Cnblogs.Rdst.Domain;
      9 using Cnblogs.Rdst.IBLL;
     10 using Cnblogs.Rdst.BLL;
     11 
     12 namespace Cnblogs.Rdst.Mvc.Controllers
     13 { 
     14     public class UserInfoController : Controller
     15     {
     16         //private ModelContainer db = new ModelContainer();
     17         IUserInfoService db = new UserInfoService();
     18 
     19         //
     20         // GET: /UserInfo/
     21 
     22         public ViewResult Index()
     23         {
     24            // return View(db.UserInfo.ToList());
     25             return View(db.LoadEntites(u => true));
     26         }
     27 
     28         //
     29         // GET: /UserInfo/Details/5
     30 
     31         public ViewResult Details(int id)
     32         {
     33             //UserInfo userinfo = db.UserInfo.Single(u => u.ID == id);
     34             UserInfo userinfo = db.LoadEntites(u => u.ID == id).FirstOrDefault();//FirstOrDefault()获取集合第一项
     35             return View(userinfo);
     36         }
     37 
     38         //
     39         // GET: /UserInfo/Create
     40 
     41         public ActionResult Create()
     42         {
     43             return View();
     44         } 
     45 
     46         //
     47         // POST: /UserInfo/Create
     48 
     49         [HttpPost]
     50         public ActionResult Create(UserInfo userinfo)
     51         {
     52             if (ModelState.IsValid)
     53             {
     54                 //db.UserInfo.AddObject(userinfo);
     55                 //db.SaveChanges();
     56                 db.AddEntity(userinfo);
     57                 return RedirectToAction("Index");  
     58             }
     59 
     60             return View(userinfo);
     61         }
     62         
     63         //
     64         // GET: /UserInfo/Edit/5
     65  
     66         public ActionResult Edit(int id)
     67         {
     68             //UserInfo userinfo = db.UserInfo.Single(u => u.ID == id);
     69             UserInfo userinfo = db.LoadEntites(u=>u.ID==id).FirstOrDefault();
     70             return View(userinfo);
     71         }
     72 
     73         //
     74         // POST: /UserInfo/Edit/5
     75 
     76         [HttpPost]
     77         public ActionResult Edit(UserInfo userinfo)
     78         {
     79             if (ModelState.IsValid)
     80             {
     81                // db.UserInfo.Attach(userinfo);
     82                // db.ObjectStateManager.ChangeObjectState(userinfo, EntityState.Modified);
     83                // db.SaveChanges();
     84                 db.UpdateEntity(userinfo);
     85                 return RedirectToAction("Index");
     86             }
     87             return View(userinfo);
     88         }
     89 
     90         //
     91         // GET: /UserInfo/Delete/5
     92  
     93         public ActionResult Delete(int id)
     94         {
     95            // UserInfo userinfo = db.UserInfo.Single(u => u.ID == id);
     96             UserInfo userinfo = db.LoadEntites(u => u.ID == id).FirstOrDefault();
     97             return View(userinfo);
     98         }
     99 
    100         //
    101         // POST: /UserInfo/Delete/5
    102 
    103         [HttpPost, ActionName("Delete")]
    104         public ActionResult DeleteConfirmed(int id)
    105         {            
    106             //UserInfo userinfo = db.UserInfo.Single(u => u.ID == id);
    107            // db.UserInfo.DeleteObject(userinfo);
    108            // db.SaveChanges();
    109             var userInfo=db.LoadEntites(u=>u.ID==id).FirstOrDefault();
    110             db.DelEntity(userInfo);
    111             return RedirectToAction("Index");
    112         }
    113 
    114         //protected override void Dispose(bool disposing)
    115         //{
    116         //    db.Dispose();
    117         //    base.Dispose(disposing);
    118         //}
    119     }
    120 }
    复制代码

          3.3、接下来我们在Global.asax文件中配置一下路由,将controller = "Home"更改为controller = "UserInfo"

                

             

            3.4、将Cnblogs.Rdst.Mvc项目设置为启动项,在点击启动调试。

                   在此由于涉及到表外键关系,我们需要将映射文件中的外键改为可空,在网页上才可以进行新增操作。

           

                       

         至此,面向对象、面向接口 入门级三层架构项目就已结束了,希望对大家有所帮助!

  • 相关阅读:
    HDU 2852 KiKi's K-Number (主席树)
    HDU 2089 不要62
    Light oj 1140 How Many Zeroes?
    Bless You Autocorrect!
    HDU 6201 transaction transaction transaction
    HDU1561 The more ,The better (树形背包Dp)
    CodeForces 607B zuma
    POJ 1651 Mulitiplication Puzzle
    CSUOJ 1952 合并石子
    Uva 1599 Ideal path
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2639456.html
Copyright © 2011-2022 走看看