ASP.NET MVC 5入门小结
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入门小结的更多相关文章
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- ASP.NET MVC 5 入门指南汇总
经过前一段时间的翻译和编辑,我们陆续发出12篇ASP.NET MVC 5的入门文章.其中大部分翻译自ASP.NET MVC 5 官方教程,由于本系列文章言简意赅,篇幅适中,从一个web网站示例开始讲解 ...
- 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 入门教 ...
- ASP.NET MVC 5 入门教程 (3) 路由route
文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-route.html 上一节:ASP.NET MVC 5 入门 ...
- ASP.NET MVC 5 入门教程 (2) 控制器Controller
文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-controller.html 上一节:ASP.NET MVC ...
随机推荐
- HW5.26
public class Solution { public static void main(String[] args) { int totalCount = 0; int lineCount = ...
- Sitecore Digital Marketing System, Part 1: Creating personalized, custom content for site visitors(自定义SiteCore中的 Item的Personalize的Condition) -摘自网络
Sitecore’s Digital Marketing System (DMS) can help you personalize the content your site displays to ...
- Delphi XE5 安卓手机要求
1 ARMv7 的 CPU v6 的肯定不支持. 2 黑屏是因为你的手机 CPU 不支持 NEON 特性.或者是 T2 海思 CPU .这 2 个不支持. 3 系统版本 2.3.3 到 2.3.9 ...
- CSS背景与列表
CSS中背景的使用 CSS中列表的使用 15.1 CSS中背景的使用 属性名称 属性值 ...
- Oracle- 分页例子
Oracle分页的写法,比MSSQLSERVER还简单. 记录如下: select t.*, rownum r from (select su02, wi00, wi01, wi02, wi05, t ...
- C#中让窗体自动靠边隐藏
1: private void Yincangtimer_Tick(object sender, EventArgs e)//窗体隐藏事件 2: { 3: int a = Control.MouseP ...
- centos上安装jdk环境
老沙采用的环境是centos 6.5 64位服务器.在linux上安装jdk环境都很多中方式,这里讲解下手工进行安装并进行环境变量配置. 首先需要下载一个64位版本的linux,可以去oracle官网 ...
- C++Vector使用方法
C++内置的数组支持容器的机制,可是它不支持容器抽象的语义.要解决此问题我们自己实现这种类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用须要的头文 ...
- 【38】通过复合塑模出Has-A 或根据某物实现出
1.什么是复合? 复合是类型之间的一种关系,某种类型的对象内含其他类型的对象. 2.为什么需要复合,他解决什么问题? 为了代码复用. 3.复合有两层含义:Has-A和根据某物实现出.在应用域中,表示H ...
- Linux下修改网卡IP、DNS和网关
Linux下修改网卡IP和网关 建议通过终端字符方式下来修改 一.修改IP地址 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOO ...