[MSDN]ASP.NET MVC2(4)MVC中的View实现技巧(下)

说明:本内容来自微软的webcast,讲师为苏鹏。视频没有书方便(想看哪页就看哪页),所以抄录要点和老师语录。

内容介绍

-          Htmlhelper

-          ViewEngine 深入介绍

预备知识

-          安装VS2010

-          了解ASP.NET

-          了解设计模式基本概念

Html.ActionLinkHtml.RouteLink

-          这两个控件都根据用户输入生成导航信息

-          ActionLink根据生成调用另外Controller的链接

1

clip_image002[10]

2

clip_image004[10]

3

clip_image006[10]

Html.RouteLink部分

1格式

clip_image008[10]

Html.BeginForm

-          这一标记完全模拟<from>标记

类似htmlformfrom包含多个input 表单,至少有一个input type=button

方式1

clip_image010[10]

方式2推荐

clip_image012[10]

Html.Hidden

-          用于生成隐藏文本

clip_image014[10]

Html.DropDownList Html.ListBox

-          用于显示列表或选择值

-          用于限制用户的输入

 clip_image016[10]

clip_image018[10]

clip_image020[10]

强类型

clip_image022[10]

Html.PassWord

- Password的工作方式和textbox一样,只是提交以后数据会自动清空

clip_image024[18]

Html.RadioButton

-          生成一组选择值,并要求用户选择其一

clip_image024[19]

Html.PartialHtml.RenderPartial

-          用于输出html片段

<%Html. RenderPartial (“MyUserControl”)%>

<%:Html.Partial(“MyUserControl”)%>

两个方法功能一样

RenderPartial相当于用Response.Write直接输出,在大型网站中,比Partial性能好。

RenderPartialResponse.Write输出不用编译,所以不要冒号。

Partial使用HtmlHelper类,所以需要冒号。

可输出ascxaspx

Partial有四个构造函数

clip_image026[10]

Html.ActionHtml.RenderAction

-          用于实现指定Controller的指定Action 调用

Html.Action部分

clip_image028[10]

上图:

A Home controller 中,可以调用[ChildActionOnly]-Menu()

B PartialView 新概念,是针对[ChildActionOnly]来做的,返回一小段数据。

强类型:

clip_image030[10]

页面中调用Menu 的内容

clip_image032[10]

 

RenderAction部分

可以加一般类型参数,还可以加特殊类型参数.-对象的实例.

clip_image034[10]

Action 接受参数-类的实例

clip_image036[10]

View 调用并显示

clip_image038[10]

Action 不会像C#那样,根据函数的名字和参数重载

它需要加一个Attribute –[ActionName(“coolmenu”)]

ActionNmae 可以 代替函数名 for 调用时。

如下图:

clip_image040[10]

调用的时候Action 应该用”coolmenu”,不是menu

clip_image042[10]

Html.TextArea

-          用于生成<textarea>标签

不是richtextbox ,会对html 进行 encoding.

clip_image044[10]

Html.ValidationMessage

-          显示ModelState 验证结果

验证结果显示在view 层,一些商业规则在Model层,不再 view层是框架决定的。

clip_image046[10]

Html.ValidationSummary

-          显示一组报错数据

错误明细,条目。

clip_image048[10]

统共的错误,笼统地错误。

clip_image050[10]

HTML模板

-          mvc2支持自定义模板

View引擎介绍

生命周期

clip_image052[10]

 

记载时候,有两件事最重要

第一件事是它能玩得转,需要路由信息,要加入Router

第二件事是它需要知道使用哪种引擎做呈现,要加入ViewEngine。默认情况下不写。

clip_image054[10]

先是清掉,然后注册。

使用View

-          IViewEngine 接口

如何重写引擎-实现IViewEngine 接口

clip_image056[10]

PartialView – childcontrol配对,view- controller 配对。

View

-          IView接口

一个函数输出的意思

clip_image058[10]

ViewContext属性

clip_image060[10]

Httpcontext:http上下文,response,request,server,session

Controller:controller实例

Routedata:返回router对象,让它知道从那个路由过来的。

ViewData:从controller带回的数据对象

Tempdata:保存一些从controller带回的数据对象,通常情况下它是一个cache过的对象。数据意义不大。

View:生成html显示

Clientvalidationenabled:是否在客户端验证,客户端不做就在Model做。

Formcontext:对客户端form 判定的时候依赖这个对象。包含客户端form的一些信息。

Formidgenerator:判定form的一些信息

Ischildaction:判定返回结果是什么。True的话,就用portailviewrender false的话就用view来做。

Parentactionviewcontext:用得少

Write:输出基本的信息

选择一个ViewEngine

默认的WebFormViewEngine优势

-          很像WebForm

-          使用masterpage

-          支持使用C#或者vb.net 写脚本

-          使用System.Web.Ui.Page

-          VS2010自带智能感知

使用不同的ViewEngine

clip_image062[10]

Spark(一种View引擎)

clip_image064[10]

常见问题

clip_image066[10]

附:
标题:粗体+斜体+黑色
ppt文字:宋体+黑色
作者语录:斜体+黑色/红色/蓝色
我的心得:@开头

 

人的一生应该这样度过:当他回首往事的时候,不会因为虚度年华而悔恨,也不会因为碌碌无为而羞愧。
原文地址:https://www.cnblogs.com/htht66/p/2330499.html