首页 > 代码库 > 《ASP.NET MVC 4 实战》学习笔记 1:第一个MVC用程序(上)

《ASP.NET MVC 4 实战》学习笔记 1:第一个MVC用程序(上)

开发环境为VS 2013 Ultimate,首先新建一个名为Guestbook的MVC项目,具体过程就不表啦,因为我比较懒 哈哈!

一、默认模板分析(开发工具会自动创建一个可以运行的项目):

1.控制器:继承于Controller基类的类,其中的方法(称为动作即Action)对应于某个URL。

 1 namespace Guestbook.Controllers 2 { 3     public class HomeController : Controller // 继承于Controller 4     { 5         public ActionResult Index() 6         { 7             return View(); 8         } 9 10         public ActionResult About()11         {12             //ViewBag本质上是一个字典,13             //它提供了一种存储数据的方式,这些数据随后能够在视图中进行访问14             ViewBag.Message = "Your application description page.";15 16             return View();//指示应该渲染的视图17         }18 19         public ActionResult Contact()20         {21             ViewBag.Message = "Your contact page.";22 23             return View();24         }25     }26 }            
View Code

2.注册路由:RegisterRoutes方法定义一个将URL模式映射到控制器或动作的路由。

 1 namespace Guestbook 2 { 3     public class RouteConfig 4     { 5         public static void RegisterRoutes(RouteCollection routes) 6         { 7             routes.IgnoreRoute("{resource}.axd/{*pathInfo}");//框架不必处理含有.axd扩展文件名的任何路径 8  9             routes.MapRoute(10                 name: "Default",//路由名11                 url: "{controller}/{action}/{id}",//URL模式12                 defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }//路由默认值13             );14         }15     }16 }
View Code

 二、Code First方式创建SQL Server数据库:

1.添加模型:即数据库中对应的数据表

 1 namespace Guestbook.Models 2 { 3     public class GuestbookEntry 4     { 5         public int Id { get; set; } 6         public string Name { get; set; } 7         public string Message { get; set; } 8         public DateTime DateAdded { get; set; } 9     }10 }
View Code

2.使用ORM工具--Entity Framework与数据库交互:

  1).添加一个继承于DbContext基类的类:

 1 namespace Guestbook.Models 2 { 3     public class GuestbookContext:DbContext 4     { 5         public GuestbookContext() 6         {  7         } 8  9         public DbSet<GuestbookEntry> Entries { get; set; }10     }11 }
View Code

  该上下文类同时定义了一个单独的属性Entries,是将其作为在GuestbookEntries表(EF自动创建的表为实体模型名的复数)中查询数据的集合。

  2).在Web.config文件中添加数据库连接字符串:

<add name="GuestbookContext" connectionString="Data Source=.;Initial Catalog=Guestbook;Integrated Security=True"      providerName="System.Data.SqlClient" />
View Code

  注意:1.连接字符串的名字要和上下文类的名字相同,否则要将字符串的名字传递到上下文类的构造方法中;

      2.此时运行程序并不会创建数据库!因为这一点折腾了蛮久,后来才发现在对数据表发生操作行为的时候数据库才会被自动创建。哎,菜鸟就是菜鸟。。。

三、珍珠奶茶(增删改查)--操作数据:

  1.选择下图框中选项会自动创建CRUD操作方法和相关的视图文件:

  2.选择模型和上下文类:

  3.此时运行程序输入网址如下所示:

  4.上图显示GuestbookEntries表中的数据列表,因为暂时还没有添加数据所以列表为空,只有一个Create New链接;不过现在数据库和对应的表应创建,如下图:

  5.点击Create New链接,跳转到新增页面,填写对应内容后提交:

  提交成功后,重新跳转到列表页面,可以看到每列数据均对应编辑和删除操作,是不是好强大!

 

下篇试着分析自动生成的代码,to be continued...

《ASP.NET MVC 4 实战》学习笔记 1:第一个MVC用程序(上)