ASP.NET MVC3 高级编程知识梳理(一)
《ASP.NET MVC3 高级编程》这本书看了第二遍了,感觉还不错。但是总感觉看完后,那些知识点还是成不了线或者面,一个点一个点地在脑子里,太零碎,另外感觉有些重点内容还是要记录一下,所以决定在博客园上把这些东西记录下,自己学习的同时也能与大家分享。
第一章 入门
我个人觉得这一章最重要的一句话就是:ASP.NET MVC是一种构建Web应用程序的框架。
其他的呢就是介绍发展史、Razor和如何创建一个ASP.NET MVC程序等,这章就不多说了。
第二章 控制器
从第二章开始,就要说到MVC的“三巨头”了,其实我觉得路由这个东西也应该可以占得上一个席位的吧。不到“四”吧,有感觉应该比“三"多一点。这里要说到的首先是控制器,控制器是什么呢?书上有这么一段话,应该可以帮助你更好地理解控制器:
MVC中的控制器主要负责响应用户的输入,并且响应时通常会修改模型。通过这种方式,MVC模型中的控制器主要关注的是应用程序流,输入数据的处理,以及对相关视图输出数据的提供。
可以看出,控制器在MVC中的作用是很大的。说No.1不为过吧!在MVC中用户的输入只采用请求的方式,每个请求被路由到控制器的一个方法,该控制器全权负责解释这些请求,如果有必要,还要操纵模型,然后通过响应选择一个视图反馈给用户。
第三章 视图
视图的职责是向用户提供用户界面。
指定视图:
1> 指定相同控制器目录下的视图:return View("NotIndex")
2> 指定不同控制器目录下的视图:return View("~/View/Example/Index.cshtml"),用来指定不同Controller文件夹下的视图,使用这种指定方法可以在查找时避开视图引擎的内部查找机制,但是就要求必须提供视图的文件扩展名cshtml。
添加命名空间:
1>视图内部添加:@using xxxxxxxxxx
2>对于经常使用的命名空间,可以在Views目录下的web.config(不是项目下的web.config)里的system.web.webPages.razor>page>namespaces添加要使用到的命名空间。
视图模型
显示与主模型无关的数据的两种方法:1>ViewBag 2>自定义模型,将主模型与无关数据包含。 这只是MVC中的两种方法,其他的方法也有,比如:KonckOut也是可以的。
T4视图模板
这里只是简单讲一下T4模板,有机会应该专门拿出一章来说。一开始用MVC的同学应该都创建过一些列的操作页面,如list、add、modify等等。这些就是通过T4模板为我们生成的,这些模板在 C:\ProgramFiles\MicrosoftVisualStudio10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC3\CodeTemplates\AddView\CSHTML里就可以看到,这个目录内包含的每一个.tt文件都对应了一个视图基架,我们也可以在这个文件夹下添加我们自己的模板文件。这样,在添加View的时候,也就可以选择自定义的tt文件了。
Razor视图引擎 这里只说Razor需要注意的一些地方
1>两个@@转义一个@
2>任何时候,Razor有了二义性,都可以用圆括号指明想要的内容。