XML与WEB Service技术(微软):第11章 Razor视图引擎

上传人:ni****g 文档编号:570027750 上传时间:2024-08-01 格式:PPT 页数:43 大小:1.49MB
返回 下载 相关 举报
XML与WEB Service技术(微软):第11章 Razor视图引擎_第1页
第1页 / 共43页
XML与WEB Service技术(微软):第11章 Razor视图引擎_第2页
第2页 / 共43页
XML与WEB Service技术(微软):第11章 Razor视图引擎_第3页
第3页 / 共43页
XML与WEB Service技术(微软):第11章 Razor视图引擎_第4页
第4页 / 共43页
XML与WEB Service技术(微软):第11章 Razor视图引擎_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《XML与WEB Service技术(微软):第11章 Razor视图引擎》由会员分享,可在线阅读,更多相关《XML与WEB Service技术(微软):第11章 Razor视图引擎(43页珍藏版)》请在金锄头文库上搜索。

1、第第11章章RazorRazor视图引擎视图引擎01 八月 20242Ch11Razor视图引擎视图引擎11.1基本知识基本知识11.2Razor引擎提供的类和对象引擎提供的类和对象11.3常用的常用的HTML帮助器帮助器11.4具有特殊功能的具有特殊功能的HTML帮助器帮助器11.1基本知识基本知识l11.1.1Razor视图引擎的优点视图引擎的优点l11.1.2Razor基本用法基本用法l11.1.3在在Razor视图中引用视图中引用.NET命名空间命名空间01 八月 2024301 八月 2024411.1基本知识基本知识Razor简介简介Razor(cshtml)视图引擎使用)视图引擎

2、使用HTML5和和C#言编写视图代码,用法简言编写视图代码,用法简单直观;而单直观;而ASPX(C#)视图引擎使用传统的)视图引擎使用传统的ASP.NETWeb窗体窗体(.aspx文件)编写视图代码。文件)编写视图代码。在同一个在同一个ASP.NETMVC3Web应用程序中,可以混合使用这两种视图应用程序中,可以混合使用这两种视图引擎。引擎。建议读者尽量使用建议读者尽量使用Razor(cshtml)视图引擎,以充分发挥)视图引擎,以充分发挥HTML5的的优势。优势。11.1.1Razor视图引擎的优点视图引擎的优点l(1)易学习、上手快。)易学习、上手快。l(2)语法简洁。)语法简洁。l(3)

3、增加了一些针对视图页操作的新的语法特性)增加了一些针对视图页操作的新的语法特性和和API。l(4)可在视图页中直接使用)可在视图页中直接使用ASP.NET框架的所有框架的所有功能以及所有功能以及所有.NET类库。类库。l(5)提供了丰富的智能提示和语法着色。)提供了丰富的智能提示和语法着色。l(6)可直接编写对视图页进行单元测试的代码。)可直接编写对视图页进行单元测试的代码。01 八月 2024511.1.1Razor视图引擎的优点视图引擎的优点l1Razor视图引擎新增的语法特性视图引擎新增的语法特性01 八月 20246新增的语法特性说明model指定传递给视图的模型类型* *注释。用该语

4、法注释的内容会发送到浏览器(浏览器查看源代码可看到),而C#语法的注释(/和/* */)不会发送到浏览器(浏览器查看源代码看不到)默认布局页一次性定义所有视图页引用的默认布局页(例如_layoutpage.cshtml),不需要每次都在视图页中明确指定布局页Html.Raw方法显示不进行HTML编码的字符串,即将标记原样发送到客户端。例如 string greeting = Hello World!; Html.Raw(greeting)在多视图间提供共享代码见_viewstart.cshtml11.1.1Razor视图引擎的优点视图引擎的优点l2自动对自动对HTML字符串进行编码防止脚本攻击

5、字符串进行编码防止脚本攻击为了防止类似于为了防止类似于XSS(Cross-sitescripting,跨网站脚本)等恶意脚,跨网站脚本)等恶意脚本的攻击,本的攻击,Razor引擎自动对引擎自动对标记的输出进行标记的输出进行HTML编码,以确保视编码,以确保视图的安全性。图的安全性。HTML编码的含义是将具有特定含义的编码的含义是将具有特定含义的HTML字符用转义字符用转义符来代替。例如将符来代替。例如将“”字符用字符用“<”来代替。来代替。如果不希望对如果不希望对HTML字符串进行编码,可以使用字符串进行编码,可以使用Html.Raw(value)方法方法来实现,该方法返回不进行来实现,

6、该方法返回不进行HTML编码的字符串,并将其作为编码的字符串,并将其作为HTML输输出。例如:出。例如:Html.Raw(Helloworld!)01 八月 20247XSS是一种对Web网站攻击的技术。简单地说,攻击者把恶意脚本放入应用程序的一个HTML表单中的input元素内,来把它显示给另一用户。通过XSS,攻击者能够获取用户的账号,从而进一步获取更多的攻击信息。l3Razor引擎有可能取代引擎有可能取代ASPX引擎引擎由于由于Razor引擎与引擎与ASPX引擎相比有很多优点,所以它很有可能完引擎相比有很多优点,所以它很有可能完全取代全取代ASPX引擎。引擎。11.1.2Razor基本用

7、法基本用法l1标记标记标记表示开始一个内联表达式、单语句块或者多语句块。标记表示开始一个内联表达式、单语句块或者多语句块。u例如:例如:ViewBag.Title=Example1;uHtml.Raw()标记基本用法标记基本用法u*多语句块多语句块*uvargreeting=欢迎访问欢迎访问!;uvarweekDay=DateTime.Now.ToString(dddd);uvargreetingMessage=greeting+今天是:今天是:+weekDay;u【例【例11-1】演示】演示标记的基本用法。标记的基本用法。01 八月 2024811.1.2Razor基本用法基本用法l2:标记

8、标记l:标记用于输出单行文本。如果需要输出多行文本,可以使用标记用于输出单行文本。如果需要输出多行文本,可以使用HTML的的text标记,标记,text标记相当于在每行都使用标记相当于在每行都使用:标记。标记。例如:例如:DateTime.Now:是是当前当前时间。时间。当前时间为:当前时间为:DateTime.NowDateTime.Now是是当前当前时间。时间。l【例【例11-2】演示】演示:标记的基本用法及其和标记的基本用法及其和text标记的区别标记的区别01 八月 2024911.1.3在在Razor视图中引用视图中引用.NET命名命名空间空间l1添加所有视图都使用的命名空间添加所有

9、视图都使用的命名空间l2添加当前视图引用的命名空间添加当前视图引用的命名空间01 八月 20241011.2Razor引擎提供的类和对象引擎提供的类和对象l11.2.1视图操作类视图操作类l11.2.2数据类型转换类数据类型转换类l11.2.3HttpRequestBase对象和对象和HttpResponseBase对象对象l11.2.4HttpServerUtilityBase对象对象l11.2.5其他对象其他对象l11.2.6Razor引擎增加的数据库操作方法引擎增加的数据库操作方法01 八月 20241111.2Razor引擎提供的类和对象引擎提供的类和对象Razor视图引擎除了提供用视

10、图引擎除了提供用C#语言在视图中编写代码外,还提供了一些语言在视图中编写代码外,还提供了一些API,共有三种:,共有三种:(1)类()类(Classes)(2)数据()数据(Data)(3)帮助器()帮助器(Helper)01 八月 20241211.2.1视图操作类视图操作类Razor引擎提供的视图操作类(引擎提供的视图操作类(WebPagebase类)提供了对类)提供了对布布局页、内容页、分部页局页、内容页、分部页的定义和引用方法,由于的定义和引用方法,由于WebPagebase类是其他视图的基类,所以可以在其他视图中直接使用该类公开类是其他视图的基类,所以可以在其他视图中直接使用该类公开

11、的属性和方法。的属性和方法。l1Layout属性属性该属性指定应用到当前页的布局页的路径。如果该属性指定应用到当前页的布局页的路径。如果Layout为为null,表示不引用布局页。表示不引用布局页。l2IsPost属性属性客户端初始请求(第客户端初始请求(第1次访问)一般都是次访问)一般都是GET请求,如果请求,如果ISPost属性为属性为true,则表示是通过网页中的表单提交的数据,即客户端,则表示是通过网页中的表单提交的数据,即客户端不是第不是第1次访问该网页。次访问该网页。01 八月 20241311.2.1视图操作类视图操作类l3RenderBody()用于在用于在布局页布局页中定义内

12、容页的占位符。用法:中定义内容页的占位符。用法:RenderBody()l4RenderPage(path,values)、RenderPage(path,param1,param2)使用特定的路径和可选的扩展数据项呈现使用特定的路径和可选的扩展数据项呈现内容页内容页。例如:。例如:uRenderPage(_MySubPage.cshtml,newcolor=red,number=113)uRenderPage(_MySubPage.cshtml,red,113)u除了这两个方法外,还可以通过除了这两个方法外,还可以通过PageData访问布局页中的内容。访问布局页中的内容。01 八月 202

13、41411.2.1视图操作类视图操作类l5RenderSection(sectionName,required=true|false)用于在用于在布局页布局页中定义节(中定义节(section)的占位符。可选参数)的占位符。可选参数required表示是否必须在表示是否必须在内容页内容页中定义用参数中定义用参数sectionName指定指定的节,默认为的节,默认为true。例如:。例如:uRenderSection(SectionOne)l6section(sectionName)content在内容页中定义在内容页中定义布局页布局页中定义的节的内容。例如:中定义的节的内容。例如:usecti

14、onfooterfootertextl【例【例11-4】演示】演示RenderSection和和Section的基本用法。的基本用法。01 八月 20241511.2.2数据类型转换类数据类型转换类Razor引擎提供的数据类型转换类扩充了引擎提供的数据类型转换类扩充了C#语言的数据转换和数语言的数据转换和数据类型判断功能,目的是为了让开发人员在视图中编写的代码更据类型判断功能,目的是为了让开发人员在视图中编写的代码更少。少。l1数据类型转换数据类型转换01 八月 202416基本操作说明AsBool()AsBool(true|false)将字符串转换为布尔型(true/false)。如果无法转

15、换为布尔型,则返回false。例如:bool b = stringValue.AsBool();AsDateTime()AsDateTime(value)将字符串转换为日期型。如果转换失败,则AsDateTime()返回DateTime.MinValue,AsDateTime(value)返回参数中指定的值。例如:DateTime dt = stringValue.AsDateTime();AsDecimal()AsDecimal(value)将字符串转换为decimal类型的值。如果转换失败,则AsDecimal()返回0.0,AsDecimal(value)返回参数中指定的值。例如:dec

16、imal d = stringValue.AsDecimal();AsFloat()AsFloat(value)将字符串转换为float类型的值。如果转换失败,则AsFloat()返回0.0,AsFloat(value)返回参数中指定的值。例如:float d = stringValue.AsFloat();AsInt()AsInt(value)将字符串转换为整型值。如果转换失败,则AsInt()返回0,AsInt(value)返回参数中指定的值。例如:int i = stringValue.AsInt();IsBool()IsDateTime()IsDecimal()IsFloat()IsI

17、nt()判断能否将字符串转换为指定的类型,如果能成功转换则返回true,否则返回false。例如:var isint = stringValue.IsInt();IsEmpty()如果对象或变量为空,则返回true。例如:if (Requestcompanyname.IsEmpty() :Company name is required. IsPost11.2.2数据类型转换类数据类型转换类l【例【例11-5】演示数据类型转换的基本用法,运行效果如图】演示数据类型转换的基本用法,运行效果如图11-5所示。所示。01 八月 20241711.2.3HttpRequestBase对象和对象和Htt

18、pResponseBase对象对象获取方式:获取方式:通过通过Request属性获取属性获取HttpRequestBase对象,通过对象,通过Response属性获取属性获取HttpResponseBase对象,通过对象,通过Server属性属性获取获取HttpServerUtilityBase对象。对象。属性介绍:属性介绍:表表11-3列出了常用的列出了常用的HttpRequestBase对象公开的属对象公开的属性和方法。性和方法。01 八月 202418属性和方法说明Request.Cookieskey获取或设置HTTP Cookie的值。例如:var cookieValue = Requ

19、est.CookiesmyCookie.Value;Request.Fileskey获取或设置当前请求中上传的文件。例如:Request.FilespostedFile.SaveAs(MyPostedFile);Request.Formkey获取窗体中的数据,该方法同时检查Request.Form和Request.QueryString集合。例如:var formValue = Request.FormmyTextBox; var formValue = RequestmyTextBox;Request.QueryStringkey获取URL请求中指定的数据,该方法同时检查Request.Fo

20、rm和Request.QueryString集合。例如:var queryValue = Request.QueryStringmyTextBox; var queryValue = RequestmyTextBox;Request.Unvalidated(key)Request.Unvalidated()Request.QueryString|Form|Request.Cookies|Headerskey有选择地禁用表单验证、查询字符串的值、cookie或标头值。默认启用验证请求以防止用户传递标记或其他具有潜在危险的内容。例如:Request.Unvalidated(userText); v

21、ar prodID = Request.Unvalidated().QueryStringproductID; var richtextValue = Request.Unvalidated().FormrichTextBox1; var cookie = Request.Unvalidated().CookiesmostRecentVisit;11.2.3HttpRequestBase对象和对象和HttpResponseBase对象对象l表表11-4列出了常用的列出了常用的HttpResponseBase对象公开的方法。对象公开的方法。01 八月 202419属性和方法说明Response.

22、AddHeader(name, value)在响应中添加HTTP服务器标头。例如:Response.AddHeader(WWW-Authenticate, BASIC); / 使用基本身份验证添加标头Response.Redirect(path)将浏览器重定向到另一个地址。例如: Response.Redirect(/Folder/File);Response.OutputCache(seconds , sliding , varyByParams)输出缓存页,缓存时间由参数seconds指定。如果sliding为true,则表示在页请求时,如果缓存超时,用veryByParams中指定的缓存

23、页。例如:Response.OutputCache(60);Response.OutputCache(3600, true);Response.OutputCache(10, varyByParams : new category,sortOrder);Response.SetStatus(httpStatusCode)将设置的HTTP状态码发送到浏览器。例如:Response.SetStatus(HttpStatusCode.Unauthorized);Response.SetStatus(401);Response.WriteBinary(data , mimetype)输出响应数据的内容

24、。例如:Response.WriteBinary(image, image/jpeg);Response.WriteFile(file)输出文件的内容。例如:Response.WriteFile(file.ext);11.2.4HttpServerUtilityBase对象对象l在在Razor引擎中,通过引擎中,通过Server属性获取属性获取HttpServerUtilityBase对象。对象。01 八月 202420方法说明Server.HtmlDecode(htmlText)对已经进行过HTML编码的字符串解码。例如:var htmlDecoded = Server.HtmlDecode

25、(<html>);Server.HtmlEncode(text)对HTML字符串编码。例如:var htmlEncoded = Server.HtmlEncode();Server.MapPath(virtualPath)将虚拟路径转换为服务器的物理路径。例如:var dataFile = Server.MapPath(/App_Data/data.txt);Server.UrlDecode(urlText)将表示URL的文本字符串解码。例如:var urlDecoded = Server.UrlDecode(url%20data);Server.UrlEncode(text)对U

26、RL字符串编码。例如:var urlEncoded = Server.UrlEncode(url data);11.2.5其他对象其他对象uRazor引擎还提供了其他对象,例如对引擎还提供了其他对象,例如对Session的操作,对的操作,对URLData的操作,以及对用户身份验证相关的操作等。的操作,以及对用户身份验证相关的操作等。1Href(path,param1,param2)uHref方法根据本地路径字符串创建方法根据本地路径字符串创建URL,参数指定可选的路径部分。,参数指定可选的路径部分。例如:例如:Link to Product2PageDatakey、PageDataindex、

27、Pageu包含当前请求的当前页、布局页、分部页中共享的数据。例如:包含当前请求的当前页、布局页、分部页中共享的数据。例如:PageDataFavoriteColor = red; PageData1 = apples; Page1 / 显示PageData1的值Page.MyGreeting / 显示Page.MyGreeting的值01 八月 20242111.2.5其他对象其他对象l3Sessionkey获取或设置用户关闭浏览器之前使用的获取或设置用户关闭浏览器之前使用的Session。例如:。例如:uSessionFavoriteColor=red;l4UrlDataindex从从URL

28、(例如(例如/MyPage/ExtraData)中获取附加数据。例如:)中获取附加数据。例如:uvarpathInfo=UrlData0;l5WebSecurity对象对象提供了对用户登录信息进行操作的方法,如表提供了对用户登录信息进行操作的方法,如表11-6所示。所示。01 八月 20242211.2.6Razor引擎增加的数据库操作引擎增加的数据库操作方法方法l除了通过除了通过EntityFramework的实体模型对数据库操作以外,的实体模型对数据库操作以外,Razor引擎还提供了引擎还提供了直接操作数据库直接操作数据库的方法,如表的方法,如表11-7所示。所示。在在MVC中,中,强烈建

29、议不使用直接操作数据库强烈建议不使用直接操作数据库的方法,因为这与的方法,因为这与将将模型、视图、控制器分离的思路模型、视图、控制器分离的思路不一致。不一致。对于大型项目来说,直接操作数据库会让整个团队的开发变得乱对于大型项目来说,直接操作数据库会让整个团队的开发变得乱糟糟。糟糟。01 八月 20242311.3常用的常用的HTML帮助器帮助器l11.3.1helper标记标记l11.3.2form和和input帮助器帮助器l11.3.3在控制器中处理同一个视图中的多个按钮在控制器中处理同一个视图中的多个按钮01 八月 20242411.3常用的常用的HTML帮助器帮助器l简介简介MVC框架提

30、供框架提供uHTML帮助器帮助器u自定义自定义HTML帮助器帮助器HTML帮助器并不是必须的。但是,帮助器并不是必须的。但是,在在开发开发MVC应用程序时,对应用程序时,对于与表单操作,建议尽量使用于与表单操作,建议尽量使用HTML帮助器帮助器。u灵活地实现逻辑功能灵活地实现逻辑功能u代码看起来也很清晰代码看起来也很清晰01 八月 20242511.3.1helper标记标记l在视图中,在视图中,Razor引擎提供了引擎提供了helper标记,对于需要重复生成标记,对于需要重复生成相同的相同的HTML标记的情况,使用标记的情况,使用helper标记非常方便。标记非常方便。l【例【例11-7】演

31、示】演示helper标记的基本用法,运行效果如图标记的基本用法,运行效果如图11-6所所示。示。01 八月 20242611.3.2form和和input帮助器帮助器目的:目的:生成生成HTML的的form元素以及在元素以及在form内使用的内使用的input元素。元素。l1BeginForm和和EndFormBeginForm方法用于生成方法用于生成form元素的开始标记并链接到呈现该表元素的开始标记并链接到呈现该表单的操作方法。在用户提交表单时单的操作方法。在用户提交表单时,由操作方法处理由操作方法处理form请求。请求。EndForm方法用于生成表单的结束标记,同时释放表单资源。方法用于

32、生成表单的结束标记,同时释放表单资源。有两种使用有两种使用form帮助器的基本用法,一种是使用帮助器的基本用法,一种是使用BeginForm和和EndForm帮助器方法。帮助器方法。例如:例如:uHtml.BeginForm(Index,Home);uuHtml.EndForm();01 八月 20242711.3.2form和和input帮助器帮助器另一种是使用另一种是使用C#语言的语言的using语句调用语句调用BeginForm帮助器方法。帮助器方法。例如:例如:uusing(Html.BeginForm(Index,Home)uuu这两种写法的结果完全相同,但后者(这两种写法的结果完全

33、相同,但后者(using语句)的语法看起语句)的语法看起来比前者更简洁,所以一般使用后面这种形式。来比前者更简洁,所以一般使用后面这种形式。01 八月 20242811.3.2form和和input帮助器帮助器l2input帮助器帮助器用于实现单选按钮、复选按钮、列表框、下拉框、文本框、多行用于实现单选按钮、复选按钮、列表框、下拉框、文本框、多行文本框、隐藏域以及密码字段等功能。文本框、隐藏域以及密码字段等功能。01 八月 202429帮助器方法说明CheckBox呈现复选框。返回允许用户选择true或false条件的复选框input元素。例如:Html.CheckBox(myCheckbox

34、, false)客户端输出: Hidden在表单中嵌入未呈现的信息以供用户查看。返回隐藏的input元素。例如:Html.Hidden(myHidden, val)客户端输出:Password呈现用于输入密码的文本框。返回密码input元素。例如:Html.Password(myPassword, val)客户端输出:RadioButton呈现单选按钮。返回用于呈现互斥选项的单选按钮input元素。例如:Html.RadioButton(myRadiobutton, val, true)客户端输出:TextArea呈现文本区域(多行文本框)。返回指定的textarea元素。例如:Html.Te

35、xtArea(myTextarea, val, 5, 20, null)客户端输出: valTextBox呈现文本框。返回文本input元素。例如:Html.TextBox(myTextbox, val)客户端输出:11.3.2form和和input帮助器帮助器l3DropDownList和和ListBox帮助器帮助器lDropDownList和和ListBox帮助器用于让用户选择一个或多个帮助器用于让用户选择一个或多个选项,如表选项,如表11-9所示。所示。01 八月 202430帮助器方法说明DropDownList呈现下拉列表。返回一个select元素,用户可从该元素中选择一个项。例如:

36、Html.DropDownList(myList, new SelectList(new A, B), Choose)客户端输出: Choose A B ListBox呈现列表框。返回一个select元素,用户可从该元素中选择一个或多个项。例如:Html.ListBox(myList, new MultiSelectList(new A, B)客户端输出: A B 11.3.2form和和input帮助器帮助器l【例【例11-8】演示】演示form帮助器、帮助器、input帮助器以及列表帮助器的帮助器以及列表帮助器的基本用法,运行效果如图基本用法,运行效果如图11-7和图和图11-8所示。所示

37、。01 八月 20243111.3.3在控制器中处理同一个视图中在控制器中处理同一个视图中的多个按钮的多个按钮l问题引入:问题引入:如果在同一个视图中包含多个按钮,如何在控制器如果在同一个视图中包含多个按钮,如何在控制器中判断是哪个按钮呢?要解决这个问题,我们必须首先理解控中判断是哪个按钮呢?要解决这个问题,我们必须首先理解控制器中的特性声明以及视图动作和控制器控制方法参数之间的制器中的特性声明以及视图动作和控制器控制方法参数之间的关系。关系。l我们知道,在视图中,可以用我们知道,在视图中,可以用HTML标记的标记的name特性表示按钮特性表示按钮的名称,用的名称,用value表示按钮显示的值

38、。表示按钮显示的值。例如,例如,MyExample.cshtml视图中包含两个按钮:视图中包含两个按钮:01 八月 20243211.3.3在控制器中处理同一个视图中在控制器中处理同一个视图中的多个按钮的多个按钮l在在MyExample的控制器中,用的控制器中,用HttpPostAttribute特特性性(HttpPost)声明动作方法处理的是)声明动作方法处理的是POST请求,用请求,用ActionNameAttribute特性(特性(ActionName)指定视图的名称,)指定视图的名称,然后在动作方法的参数中声明一个字符串类型的形参,并将该然后在动作方法的参数中声明一个字符串类型的形参,

39、并将该形参的名称定义为与按钮的形参的名称定义为与按钮的name特性的值相同(即上面的代特性的值相同(即上面的代码中的码中的“button”),运行时),运行时MVC就会自动将用户单击的按钮就会自动将用户单击的按钮的值(上面的代码中的的值(上面的代码中的“按钮按钮1”或者或者“按钮按钮2”)传递给该参数。)传递给该参数。l在动作方法内,通过判断视图传递给动作方法的形参的值,就在动作方法内,通过判断视图传递给动作方法的形参的值,就能知道用户单击的是哪个按钮。例如:能知道用户单击的是哪个按钮。例如:01 八月 20243311.3.3在控制器中处理同一个视图中在控制器中处理同一个视图中的多个按钮的多

40、个按钮l【例【例11-9】演示多按钮控制的基本用法,运行效果如图】演示多按钮控制的基本用法,运行效果如图11-9所所示。示。01 八月 20243411.4具有特殊功能的具有特殊功能的HTML帮助器帮助器l11.4.1URL帮助器帮助器l11.4.2WebGrid帮助器帮助器l11.4.3WebImage帮助器帮助器l11.4.4Chart帮助器帮助器l11.4.5Video帮助器帮助器l11.4.6WebMail帮助器帮助器l11.4.7其他其他HTML帮助器帮助器01 八月 20243511.4.1URL帮助器帮助器l于生成于生成HTML的超链接和未经编码的的超链接和未经编码的URL,如表

41、,如表11-10所示。所示。01 八月 202436帮助器方法说明Url.Content生成应用程序相对URL。例如:Url.Content(/my/content.pdf)输出的结果为/my/content.pdfUrl.RouteUrl用于路由数据的原始URL。例如:Url.RouteUrl(new controller = c, action = a )输出的结果为/c/aHtml.RouteLink链接到任意路由数据。例如:(1)Html.RouteLink(Hi, new controller = c, action = a , null) 输出的结果为Hi(2)Html.Route

42、Link(Hi, myNamedRoute, new ) 输出的结果为HiHtml.ActionLink链接到指定动作或控制器。(1)链接到相对URL。例如: Html.ActionLink(Hi, About, Home) 输出的结果为Hi (2)链接到绝对URL。例如: Html.ActionLink(Hi, About, Home, https,, anchor, new, null) 输出的结果为Hi11.4.2WebGrid帮助器帮助器l用于生成用于生成HTML的的table元素元素,以,以网格形式显示数据项网格形式显示数据项。l表表11-11列出了列出了WebGrid帮助器提供的方

43、法。帮助器提供的方法。01 八月 202437帮助器方法说明WebGrid(data)WebGrid.GetHtml()WebGrid.Pager()根据查询的数据创建网格,并用分页的表格将其呈现出来。例如:var db = Database.Open(SmallBakery); var grid = new WebGrid(db.Query(SELECT * FROM Product);grid.GetHtml()grid.Pager()11.4.3WebImage帮助器帮助器l用于用于生成图像生成图像。l表表11-11列出了列出了WebImage帮助器提供的方法。帮助器提供的方法。01 八

44、月 202438帮助器方法说明WebImage(path)加载图像文件。例如:var image = new WebImage(test.png);WebImage.AddImagesWatermark(image)为图像添加水印效果。例如:WebImage photo = new WebImage(test.png); WebImage watermarkImage = new WebImage(logo.png); photo.AddImageWatermark(watermarkImage);WebImage.AddTextWatermark(text)为图像添加文本水印效果。例如:im

45、age.AddTextWatermark(Copyright)WebImage.FlipHorizontal() WebImage.FlipVertical()反转图像。例如:image.FlipHorizontal(); image.FlipVertical();WebImage.RotateLeft() WebImage.RotateRight()旋转图像。例如:image.RotateLeft(); image.RotateRight();WebImage.GetImageFromRequest()加载上传的图像。例如:var image = WebImage.GetImageFromR

46、equest();WebImage.Resize(width, height)改变图像大小。例如:image.Resize(100, 100);WebImage.Save(path , imageFormat)保存图像。例如:image.Save(test.png);11.4.4Chart帮助器帮助器l用于产生图表和图形。该帮助器支持用于产生图表和图形。该帮助器支持多达多达35种种不同的图表样式,并可以在视图中以不同的图表样式,并可以在视图中以二维(二维(2D)或)或三维(三维(3D)的形式显示图表。的形式显示图表。lChart帮助器的功能非常复杂,而且所有帮助器的功能非常复杂,而且所有配置选

47、项都通过配置选项都通过XML文档文档来表示。来表示。01 八月 202439帮助器方法说明Chart(width, height , template , templatePath)初始化chart控件。例如: var myChart = new Chart(width: 600, height: 400); Chart.AddSeries(name , chartType , chartArea , axisLabel , legend , markerStep , xValue , xField , yValues , yFields , options)为chart控件添加一系列的值。例

48、如: var myChart = new Chart(width: 600, height: 400) .AddSeries( name: Employee, xValue: new Peter, Andrew, Julie, Mary, Dave , yValues: new 2, 6, 4, 5, 3 ) .Write(); Chart.AddLegend(title , name)在chart中添加legend标记。例如:var myChart = new Chart(width: 600, height: 400) .AddLegend(Basic Chart) .AddSeries(

49、 name: Employee, xValue: new Peter, Andrew, Julie, Mary, Dave , yValues: new 2, 6, 4, 5, 3 ) .Write();11.4.5Video帮助器帮助器l用于在视图中用于在视图中播放视频播放视频,提供的方法如表,提供的方法如表11-14所示。所示。01 八月 202440帮助器方法说明Video.Flash(filename , width, height)用Flash播放器播放Flash视频。例如:Video.Flash(test.swf, 100, 100)Video.MediaPlayer(filena

50、me , width, height)用MediaPlayer播放器播放视频。例如:Video.MediaPlayer(test.wmv, 100, 100)Video.Silverlight(filename, width, height)用Silverlight播放器播放视频。例如:Video.Silverlight(test.xap, 100, 100)11.4.6WebMail帮助器帮助器l用于发送邮件,提供的方法如表用于发送邮件,提供的方法如表11-15所示。所示。01 八月 202441帮助器方法说明WebMail.Password为SMTP服务器设置口令。一般在_AppStart

51、.cshtml中设置。例如:WebMail.Password = password;WebMail.Send(to, subject, body , from , cc , filesToAttach , isBodyHtml , additionalHeaders)发送邮件信息。例如:WebMail.Send(, subject, body of message, );WebMail.SmtpServer设置SMTP服务器名。一般在_AppStart.cshtml中设置。例如:WebMail.SmtpServer = ;WebMail.UserName为SMTP服务器设置用户名。例如:Web

52、Mail.UserName = Joe;11.4.7其他其他HTML帮助器帮助器帮助器方法说明Bing.SearchBox(boxWidth)用Bing搜索字符串,参数指定搜索框。例如:Bing.SearchBox() * 搜索web.* Bing.SiteUrl = ; * 限制搜索的URL * Bing.SearchBox()Crypto.Hash(string , algorithm) Crypto.Hash(bytes , algorithm)使用sha256算法返回hash值。例如:Crypto.Hash(data)FileUpload.GetHtml(initialNumberOf

53、Files , allowMoreFilesToBeAdded , includeFormTag , addText , uploadText)呈现文件上传的UI。例如:FileUpload.GetHtml(initialNumberOfFiles:1, allowMoreFilesToBeAdded:false, includeFormTag:true, uploadText:Upload)Json.Encode(object)将数据对象编码为JSON(JavaScript Object Notation)字符串。例如:var myJsonString = Json.Encode(dataO

54、bject);Json.Decode(string)将JSON字符串解码为数据对象。例如:var myJsonObj = Json.Decode(jsonString);ModelStateDictionary.AddError(key, errorMessage)ModelStateDictionary.AddFormError(errorMessage)为窗体字段添加错误信息。例如:ModelState.AddError(email, 请输入邮件地址);ModelState.AddFormError(密码不匹配);ModelStateDictionary.IsValid如果验证成功,返回t

55、rue。例如:if (ModelState.IsValid) /将数据保存到数据库中ServerInfo.GetHtml()呈现ASP.NET Web页的状态信息。例如:ServerInfo.GetHtml()WebCache.Set(key, value , minutesToCache , slidingExpiration)添加对象到cache中。例如:WebCache.Set(username, )WebCache.Get(key)返回指定对象,如果对象不存在,则返回null。例如:var username = WebCache.Get(username)WebCache.Remove(key)移除指定对象。例如:WebCache.Remove(username)01 八月 20244201 八月 202443本章作业本章作业P4871、2、3

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号