《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...

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。