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模式基本图解

ASP.NET MVC 5
在上图中我标注了5个要点:

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

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

/[Controller]/[ActionName]/[Parameters]

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

routes.MapRoute(
name:"Hello",
url:"{controller}/{action}/{name}/{id}"
);
(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文件中添加连接字符串。在标签中添加如:

<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。