ASP.NET MVC View 介绍
Asp.net MVC 的默认View
l WebForm中的页面模型
-.aspx:页面内容的主体
-.master:可视为模板框架
-.ascx:局部视图(partial view)
l 继承System.Web.Mvc.ViewPage
WebForm页面模型还保持了其原有的处理方式,只是一些环境部满足了,如postback环境。在MVC框架中没有.aspx.cs文件。
View 的类型
l 弱类型ViewData
-View直接继承ViewPage
-ViewData为一个字典
-Dictionary<string,object>
-使用时往往需要在Code Behind里进行辅助
l 强类型
-View继承ViewPage<TViewData>
-ViewData则变为强类型TViewData
-ViewUserControl<>,ViewMasterPage
生成HTML的方式
l 内联脚本方式
-for…{…}
-foreach…{…}
l 使用控件
-Repeater
-ListView
l 使用辅助方法
好了,费话少说,下面我将做一个例子,通过例子来说明View的具体用法。
步骤一:创建一个MVC项目。(可参考前面的)创建好的Mvc2的项目如图1,这是ASP.NET-MVC2默认创建的。
图 1 ASP.NET-MVC2默认创建
首先,我们先不忙动手,看看它的默认项。打开Controllers下的HomeController.cs文件,我Copy一下Index方法
public ActionResult Index(){
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
Copy Views/Home/Index.aspx的一段代码
<h2><%= Html.Encode(ViewData["Message"]) %></h2>
从这里我们看得出,它使用了一个弱类型的ViewData来存储和传递值,我们可以把这个ViewData当作字典来使用。在页面中使用时,一般要对这个值进行编码,然后输出。
弱类型的View和强类型的View
弱类型的View 使用的是一个Dictionary作为它的ViewData,以Key,Value键值对的方式来访问数据的。强类型的View,你必须创建一个强类型的类型或者使用框架中已有的类型。使用强类型的View,可以有很好的IDE的支持,如代码提示等。
辅助方法:HtmlHelper
l BeginForm & EndForm
l ActionLink
l Button
l CheckBox
l Encode
l Image,etc.
辅助方法:UrlHelper
l Action
l Content
l Encode
l RouteUrl
l etc.
我们主要看ActionLink的用法,因为它使用比较广泛,比较常用。
1.向HomeController中加入Link方法
public ActionResult Link(){
return View();
}
1. 在Views/Home文件夹中添加Link 的View,并输入如下代码
<h2>Link Test1</h2>
<%= Html.ActionLink("Go back to Index","Index") %><br />
<h2>Link Test2</h2>
<%= Html.ActionLink("Go back to Index with id=1", "Index", new {id=1})%><br />
<h2>Link Test3</h2>
<%= Html.ActionLink("Go to special page","About","Home")%><br />
Test1:这个是最常用的了,html.Action(链接文本,Controller中的Action),这些都会有代码提示的。
Test2:将链接到指定Id 的Index
Test3:链接到指定Controller下Action
ActionLink总共有10个重载方法,这里只做这些测试。