1.前言

 

     本人在读研究僧一只,老师那里使用的是ASP.NET的Web Forms技术,真的要感慨一句:尼玛太老旧了!之前耳闻Python的高效开发,曾经学过一点Python的Django框架,这是我第一次接触MVC的模式。之后回到.NET平台,ASP.NET MVC自然成为了我学习的首选。这里补充一句,之前为了方便地制作网页特地花时间学习了一下Bootstrap,当我发现ASP.NET MVC 5集成了Bootstrap之后欣喜若狂,果断选择MVC5。

 

2.MVC模式基本图解

 

 

    

     在上图中我标注了5个要点:

(1)映射路由与URL路由逻辑

     路由的功能是根据客户端获取的URL来调用不同控制器类(Controller Class)下的动作方法(Action Method)。默认的URL路由逻辑是由如下格式的URL来决定代码的调用:

   1: /[Controller]/[ActionName]/[Parameters]

     当然,我们可以通过修改App_Start/RouteConfig.cs文件来自定义添加和修改路由逻辑,如:

   1: routes.MapRoute(

   2:  

   3:     name:"Hello",

   4:  

   5:     url:"{controller}/{action}/{name}/{id}"

   6:  

   7: );

(2)动作方法(Action Method)的返回值类型

     调用动作方法后返回值类型可以为string,这样就以硬编码(hard-code)的方式直接把字符串输出到浏览器中。

     也可以返回一个视图对象(View object),利用视图模板来产生一个对浏览器的HTML响应,一般返回ActionResult或者其派生类型,而不是字符串。

(3) 向视图模板传递数据或对象

     从控制器向视图模板传递参数时可以使用ViewBag。ViewBag是一个动态对象,我们可以把任何信息放进去。在我们把数据放进去之前不会有任何已定义的属性。

     MVC也支持传递强类型对象,这种强类型的方法使得编译时能有更好的代码检查和Visual Studio编辑器中更丰富的IntelliSense功能。

(4)继承自DbContext的数据库环境(Context暂译作环境)

     在定义模型类的cs文件中还要定义一个对象环境类,这个类代表Entity Framework数据库环境,用来处理模型类实例在数据库中的增删改查。这个类派生于有Entity Framework提供的DbContext基类。

(5)创建数据库连接字符串

     数据库的连接字符串指定使用的数据库,Entity Framework默认使用LocalDB(一种轻量级的SQL Server Express数据库引擎)。默认地,Entity Framework寻找一个和对象环境类相同命名的连接字符串。

     我们可以手动在应用的根目录中的Web.config文件中添加连接字符串。在<connectionStrings>标签中添加如:

   1: <add name="MovieDBContext" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>

     我们其实不必去添加上述连接字符串。如果我们不指定一个连接字符串,Entity Framework会在用户目录下用DbContext的完全限定名称创建一个LocalDB数据库。我们可以任意命名该数据库,只要是以.MDF为后缀名。

 

3.后记

 

     小弟是菜鸟一只,感兴趣的方向是ASP.NET和Python,求学意识强烈可惜身边没有可以交流请教的高人和朋友。如果哪位大侠朋友愿意和我交流讨论的请不吝指教,我的邮箱是name.wuzhiyu@outlook.com

ASP.NET MVC 5入门小结的更多相关文章

  1. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

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

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

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

  3. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

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

  4. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

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

  5. 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

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

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

    经过前一段时间的翻译和编辑,我们陆续发出12篇ASP.NET MVC 5的入门文章.其中大部分翻译自ASP.NET MVC 5 官方教程,由于本系列文章言简意赅,篇幅适中,从一个web网站示例开始讲解 ...

  7. ASP.NET MVC 5 入门教程 (4) View和ViewBag

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

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

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

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

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

随机推荐

  1. MATLAB中的max函数的用法及含义

    当A是一个列向量时候,返回一个最大值,在此不在赘述. 当Amxn是一个矩阵的时候,有以下几种情况: ①   C = max(max(A)),返回矩阵最大值 ②   D = max(A,[],1),返回 ...

  2. leetcode@ [124] Binary Tree Maximum Path Sum (DFS)

    https://leetcode.com/problems/binary-tree-maximum-path-sum/ Given a binary tree, find the maximum pa ...

  3. 【推荐】JavaScript的那些书

    又好久没写东西了,写上一篇的时候还以为接下来的工作会轻松一些,结果未从我所愿呐,又是一阵忙碌.而这段时间穿插着做了很多12年淘宝校园招聘的前端面试,很多同学都有问到,学校里没有前端的课程,那如何学习J ...

  4. Windbg分析DMP文件

    1.提取Dump格式文件 有两种方式: 第一种,程序崩溃时,启动任务管理器,选择崩溃的*.exe进程,右键选择创建转储文件,通过 开始—运行—输入 %temp% --确定--在打开Temp窗口中即可找 ...

  5. oracle 修改索引现有表空间

    工作日记之<修改索引现有表空间> //dba_indexes可查询所有索引,以及索引部分信息,可以灵活运用于其他用途 //假设用户USER1现有表空间TS1.TS2,需要迁移其下所有表空间 ...

  6. RStudio:R语言编辑器

    RStudio:R语言编辑器 四窗口 左上:写代码,运行的方式是ctrl+Enter,或者用Run按钮 10 + 15 ## [1] 25 左下:终端,上面窗口的代码运行后会在这里显示,也可以直接在这 ...

  7. ModSecurity for Nginx

    Announcing the availability of ModSecurity extension for Nginx ModSecurity for Nginx ModSecurity for ...

  8. Attribute特性验证模型model

    数据验证我们往往分为前台验证和后台验证,而我们的后台验证每到一个方法中就要去验证一次,这样的代码想想都难以维护,这篇我们这篇文章就是为了解决这样的问题.用attribute 这个特性来解决这样的问题 ...

  9. iOS与HTML5交互方法总结(转)

    今天小编在找技术文章的时候,发现这样一个标题:iOS与HTML5交互方法总结,怎么看着这么熟悉呢?   还以为是刚哥用了别的文章,点进去一看,原来是刚哥自己写的文章,他们转载的,而且还上了Dev St ...

  10. 华为的JAVA面试题及答案(部分)

    华为的JAVA面试题 (后记:没有想到华为的面试题就是非同一般,非常多题不是一眼就行看得出来,至少对我这种鸟来说是这样.对我个人来说,看看这种题,可能比看<Think In Java>都还 ...