Asp.net MVC2学习笔记3-View
前面我们说过了 控制器(controller) 和方法(action)
本次要说的就是 View以及和控制器(controller)、方法(action)之间的关系;
大家都知道 MVC中的 V 就是View 的意思,就是 呈现给用户的界面,以往的asp.net项目中叫 webform,以前做asp.net的时候就是在工具箱里面拖控件出来,
然后简单的排版一下就ok了,大多数用的服务器控件来完成,然而我们会发现 在生成的页面中包含大量的 hidden字段,
微软就是通过这边的hidden字段的内容来维护 每个服务端控件状态的,如果页面很多服务端控件的话整个页面就显得很臃肿。
而mvc 推出后,就不再推荐使用服务端控件(当然是可以使用的),而用传统的手写 html来完成(似乎又回到过去了?呵呵)。
首先我们说一下 View 和 Controller、action之间的关系:
Controller -->Action -->View
前几篇文章说过 如何从 我们输入的 URL,找到route 再找到 controller再找到对应的action,并且说过了 action 的几种返回类型。
今天的主角就是 View 类型:
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
这里是 默认Home 控制器下的 Index 方法
1、ViewData["Message"]="Welcome to ASP.NET MVC!" ,这里 控制器和 view 之间传递参数、内容 可以通过 ViewData 来实现,ViewData存放的内容是 key/value 形式 ,
类似 Session等
2、return View(); 这里就是返回一个 view,这里他是没有带参数的,默认就是 该 Action名称(Index);此时会去 Views/Home 文件夹下 找Index.aspx 这个页面,如果找到,皆大欢喜,返回 Index.aspx 内容,如果找不到,不好意思 报错,提示你 找不到文件,呵呵
这里的 View 有8个重载的构造函数,常用的除了 无构造函数外,还有 可以带一个 viewname 的字符串:
return View("About"); 此时 就可以根据 About 来寻找对应的 aspx 页面文件了;
View(string viewname,string mastername);指定页面文件名 和 模板名
还有些构造函数的方式,大家可以在 vs里面查看一下
view 创建方式:
1、Views/对应的controller 文件夹上 右键 添加-- View
2、在Controller 里 方法里面 右键 有个 Add View 菜单
这里 View 的文件名尽量 和 Action 名称一样,这样就直接可以通过 action 名称来找到view了。