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 ...
随机推荐
- centos firefox中文乱码问题
下载两个rpm包 fonts-chinese-3.02-9.6.e15.noarch.rpm fonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm 然后安装rmp rpm ...
- 40个Java集合面试问题和答案
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 另外,码农网之前也整理过一篇关于Java集合面试题的文章:大公司最 ...
- HDU 1018 Big Number
LINK:HDU 1018 题意:求n!的位数~ 由于n!最后得到的数是十进制,故对于一个十进制数,求其位数可以对该数取其10的对数,最后再加1~ 易知:n!=n*(n-1)*(n-2)*...... ...
- 【Stage3D学习笔记续】山寨Starling(九):上下文丢失处理方法
Stage3D在运行中是存在随时会丢失上下文的尴尬情况. 渲染内容丢失的问题本身就说明是因为丢失了Context3D对象.出现此问题的原因很多,通常还不是因为Stage3D应用.比如在win7系统中, ...
- iOS 定时器Timer常见问题
最近有朋友问我使用NStimer遇见与ScrollView并存时存在主线程阻塞的问题,自己总结几种解决方法: 问题原因: 一般定时器timer都会被以默认模式default添加到主线程的runloop ...
- 【32】确定你的public继承塑模出Is-A关系
1.public继承表示Is-A关系,也就是满足里氏代换.与之相对应的,private继承表示根据某物实现出,不满足里氏代换.子类对象初始化父类引用,编译通不过. 2.考虑下面的需求,企鹅继承鸟,Bi ...
- Codeforces Round #268 (Div. 1) B. Two Sets 暴力
B. Two Sets Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/468/problem/B ...
- 数据库升级ora-04063 DBMS_REGISTRY has error
在做Oracle数据库从11.2.0.1.0升级到11.2.0.2.8时,软件升级没有问题,实例升级没有问题,升级psu的时候. 执行@?/rdbms/admin/catbundle psu appl ...
- CentOS命令行无线上网
(1)首先关闭开发板的有线网卡[root@FriendlyARM /]# ifconfig eth0 down(2)加载USB WiFi无线网卡[root@FriendlyARM /]# ifconf ...
- android学习日记27--Dialog使用及其设计模式
1.Dialog概述 对话框一般是一个出现在当前Activity之上的一个小窗口,处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功 ...