上一篇文章:asp.net mvc 3.0详细笔记__04__项目文件结构详解_Models
欢迎一起来学习MVC 3.0,我们在一步一个脚印的做一个MVC 3.0的项目,期间会有很多值得探索的地方。将会学到Razor,Lampda,Entity Framework,Linq C#新特性等等知识,一起加油吧!
本次重点突破:
详解Views文件夹的作用,地位。
小提示:
工具资源下载:http://download.csdn.net/detail/dhcsimida/6779357(下载过就不用重复下载了)
步骤如下:
(1)Views文件夹放置的都是页面文件(*.cshtml或者.aspx),但是这些文件一般都不是那种右键点击“Views”文件夹添加进来的,而是在Controller里的方法(正式称谓是Action)上右键Add view,当然生成的view一定和这个Controller有密切关系,体现在,它会存在于自动生成的以Controllers为名称的文件夹下。请参考以下的Show.cshtm页面生成过程。
(2)Views文件夹下有个Shared文件夹,里面有两个页面_Layout.cshtml和Error.cshtml。
_Layout.cshtml:模板页(也成公共页),供需要的引用。具体步骤如下:
Error.cshtml :公共错误页面
1,新建一个名为StoreController.cs的Controller,同时也生成Show.cshtml,图1.1
图1.1
2,选择模板页 _Layout.cshtml,图2.1
图2.1
3,如图3.1所示 ,可见代码: Layout = "~/Views/Shared/_Layout.cshtml";
图3.1
ViewBag.Title设置了页面的标题
4,你可能会问,我可以不使用模板页吗?当然可以,但是需要注意一点:一定将选择框“Use a layout or master page”的勾去掉(如图4.2),否则(如图4.1),仍然会引用_Layout.cshtml,你一定疑惑了吧?对的,请看文件夹下是不是还有个文件叫_ViewStart.cshtml,打开你会发现,它仍然会引用_Layout.cshtml,那你又会说自己又没有使用_ViewStart.cshtml,对,这就是系统自己设置的了,只要在新建页面时,那个选择框“Use a layout or master page”还是选择状态,并且你又没选择哪个具体的模板,系统就会自动调用默认的_ViewStart.cshtml,因此你就不知不觉的使用了_Layout.cshtml,所以会造成你的页面样式受到_Layout.cshtml的影响,而不知问题出现在哪里,请多加注意。
图4.1(仍然会引用_Layout.cshtml)
图4.2(不会引用任何模板页),点击"Add"会看见生成的代码如图4.3
图4.3(可以看见代码是Layout = null;)
这回可以放心了,不会再受也_Layout.cshtml的影响了,当然我们本例子仍将采用_Layout.cshtml模板页。顺便就_Layout.cshtml文件的名称多说一点,它的命名是以下划线开头"_",这是一种约定,这种文件叫“分部视图”,顾名思义就是别的页面的一部分视图,供别人引用。当然这不是必须,只是一种约定,所有人这样做,就成了习惯,程序员要有这种意识,即自己做的东西给人看,就让人知道这是什么。对人对己都是负责人的。"分部视图"详细内容将在后面有更多叙述。