MVC+EF实现增删改查

在MVC的控制器中查询数据库中的数据,然后在用视图显示出来,这套流程是怎么走的哪,下面我自己先宏观的总结一下。

    首先,在Controllers文件夹下创建HomeController控制器,然后在ActionResult Index()方法右击——>添加视图。然后在HomeController页面引用命名空间(Models)。

    一、查询数据

    查询数据的时候,我总结了四种方式,下面一个个介绍。

    1、第一种查询方式是使用标准的运算符(SQO)查询 

OumindBlogEntities db = new OumindBlogEntities();//实例化数据库实体对象

IQueryable query= db.BlogArticles.Where(d => d.AIsDel==false);

   2、使用DBQuery延迟加载数据查询

OumindBlogEntities db = new OumindBlogEntities();//实例化数据库实体对象

DbQuery query = (db.BlogArticles.Where(d => d.AIsDel == false)) as DbQuery;

      3、使用List直接查询数据库,防止延迟加载数据

 

List list = db.BlogArticles.Where(d => d.AIsDel == false).ToList();

 

    4、使用Linq语句查询     

 

List list = (from d in db.BlogArticles where d.AIsDel == false select d).ToList();

 

    使用linq语句查询的时候,它的逻辑是:首先说明在哪个实体中查询数据(from d in db.BlogArtiticles)然后是将要查询的条件(where d.AIsDel == false),最后在实体中查询出来(select d)。使用Linq语句,.NET 编译器在编译程序集的时候,也就是将程序集编译成中间代码的时候,将Linq语句转为SQO(标准查询运算符)来执行,只不过Linq语句让程序员敲起来比较“爽”而已。

 

    二、将数据传送给相应的视图

    1、使用ViewBag传送数据

ViewBag.DataList = list; //使用ViewBag传输数据

   ViewBag是动态类型的,他的好处是我们可以随便给他添加属性

    2、使用ViewData传送数据
   

ViewData["DataList"] = list;//使用ViewData["DataList"]传输数据

   return View();//加载视图



    三、显示页面

   传送给视图的是一个List,是一堆数据,视图需要将这一堆数据获取到,然将将其组织起来,这样才能形成美观的页面。下面在Index.cshtml中将list中的数据遍历出来,然后显示在页面上。

  给这个table添加个样式,让其美观一些




    @using (Html.BeginForm("Modify","Home",FormMethod.Post))
    {
       
修改 @Html.HiddenFor(a=>a.AId)
标题: @Html.TextBoxFor(a=>a.ATitle)
分类: @Html.DropDownListFor(a=>a.ACate, ViewBag.CateList as IEnumerable)
内容: @Html.TextAreaFor(a=>a.AContent,10,60,null)
@Html.ActionLink("返回","Index","Home")
}

  三、值得学习的知识点

    1、在视图中,利用HtmlHelper方法跳转页面,利用下面这个方法,其中“返回”是链接的名称,Home 和 Index 是指的视图的路径,也就是Home下面的Index视图

@Html.ActionLink("返回","Index","Home")

 

    2、在Controller中跳转视图

return RedirectToAction("Index", "Home");

 

    3、在JS中,调用Controller的方法,并传递参数。Home代表Controller的名称,Modify代表里面的方法名

window.location = "/Home/Modify/" + id;

 

    4、利用表单提交事件,调用Controller的方法。

@using (Html.BeginForm("Modify","Home",FormMethod.Post))

    5、在Controller中,将数据从数据库中搜索出来后,利用View的model属性,将数据传给视图,视图再利用这个属性将数据显示来。

BlogArticle art = (from a in db.BlogArticles where a.AId == id select a).FirstOrDefault();

return View(art);
显示数据代码


@Html.TextBoxFor(a=>a.ATitle)
 


转自:https://blog.csdn.net/zhoukun1008/article/details/50531042

你可能感兴趣的:(EF)