光脚丫思考 QQ:524130780
邮箱:524130780@QQ.COM
博客:http://blog.youkuaiyun.com/GJYSK
视频演示:http://u.115.com/file/e6dyxh8y
通过使用操作参数可以快速获取的请求数据包括:窗体数据、查询字符串参数值、Cookie。
操作方法是由MVC进行调用的,而操作方法的参数也是由MVC自行传递的。
在MVC传递参数值之前,自然应当首先获得值,否则它要传递什么呢?
而这些参数值便是从请求数据中(窗体数据、查询字符串、Cookie)获取的。
MVC在获取这些参数值时的基本原则是:获取请求数据中的同名HTTP请求值,名称不区分大小写。
一、通过操作方法参数快速获取请求的窗体数据
下面是用来提供输入窗体数据的视图页源代码。
下面则是通过操作方法的参数快速获取窗体数据的典型代码。
在这个代码中并没有使用Request.Form之类的办法来获取请求数据,
而是MVC直接从请求数据中去获取与参数名UserName和Password同名的HTTP请求值,
并且自动将其传递给操作方法HandleForm()。
下面是用来显示获取得窗体数据的视图页源代码。
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <!DOCTYPE html> <html> <head runat="server"> <title>Account Details</title> <link href="../../Content/Site.css" rel="stylesheet" type="text/css" /> </head> <body> <div> User Name: <%: this.ViewData["UserName"] %> <br /> Password: <%: this.ViewData["Password"] %> </div> </body> </html>
二、通过操作方法参数快速获取请求的查询字符串参数值
比如下面的请求URL:
http://localhost:4967/Home/HandleQueryString?UserName=GJYSK&Password=19880109
上面的请求URL可以由HomeController的HandleQueryString操作方法进行处理。
比如下面的代码:
同样的,我们也没有使用Request.QueryString之类的办法进行获取,
而是由MVC自动从查询字符串中获取与操作方法参数UserName和Password同名的查询字符串参数值。
快速获取Cookie中的请求值,做法基本上和获取窗体数据、查询字符串参数值相同,
这里就不再多述了。
三、总结
MVC到底是如何获取这些请求数据的,我们暂时不用过多的关心。
也可能这种快速的方式在性能方面未必很快速,
这就有点像我们使用Request来模糊获取请求数据一样。
但它却是使我们在代码编写方面更加的快捷高效,而且看起来也是那么的自在。
试想一想,如果我们要获取的请求数据很多,
对每个请求数据都来个Request访问,岂不是很麻烦?
既然MVC能够自动为我们获取这些数值,为何我们又要自己动手去干一番呢?^_^
详细内容请参看演示视频,代码也和视频一起打包发布了!