ASP.NET MVC 中的View介绍(1)

来源:互联网 发布:exec php 不阻塞执行 编辑:程序博客网 时间:2024/05/22 06:58

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默认创建的。

        http://p.blog.csdn.net/images/p_blog_csdn_net/huang_dannier/EntryImages/20091023/1633919148325156250.PNG

 

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,KeyValue键值对的方式来访问数据的。强类型的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:链接到指定ControllerAction

ActionLink总共有10个重载方法,这里只做这些测试。

原创粉丝点击