标签:type get请求 发送post请求 post方法 好的 重复 arch text font
1.1 action和method特性
表单是包含输入元素的容器,其中包含按钮、复选框、文本框等元素。表单中的这些输入元素使得用户能够向页面中输入信息,并把输入的信息提交给服务器。数据的提交依赖于action和method。
action特性用以告知Web浏览器信息发送到哪里,所以action包含一个URL。这里的URL可以是相对的,也可以使绝对的。
1 <form action="http://www.bing.com/search">
2 <input name="q" type="text" />
3 <input type="submit" value="Search!">
4 </form>
上面的代码中不包含method特性。发送信息时,默认是“get”,所以上面的代码等同于:
1 <form action="http://www.bing.com/search" method="get">
2 <input name="q" type="text" />
3 <input type="submit" value="Search!">
4 </form>
当用户使用HTTP GET请求提交表单时,浏览器会提取表单中输入元素的name特性值及其相应的value特性值,并将他们放入查询字符串中。换句话说,上面的表单将把浏览器导航到URL(假设用户正在搜索关键词love):http://www.bing.com/search?q=love
1.2 GET方法还是POST方法
如果不想让浏览器把输入值放入查询字符串中,而是想放入HTTP请求的主体,就可以给method特性值赋值post。尽管这样也可以成功的向搜索引擎发送POST请求并能看到响应的结果,但是相对而言,使用HTTP GET请求会更好一些。
通常情况下,GET请求用于读操作,POST请求用于写操作(通常包括更新、创建和删除)
(1)用搜索表单搜索音乐
HTML:
1 <form action="/Home/Search" method="get">
2 <input type="text" name="q" />
3 <input type="submit" value="Search">
4 </form>
在HomeController控制器中实现Search方法。
1 public ActionResult Search(string q)
2 {
3 var albums = storeDB.Albums
4 .Include("Artist")
5 .Where(a => a.Title.Contains(q))
6 .Take(10);
7 return View(albums);
8 }
(2)通过计算action特性值来搜索音乐
更好的办法是通过计算action特性的值来搜索音乐。有一个HTML辅助方法可以代劳自动完成这个计算,如下所示:
1 @using ( Html.BeginForm("Search" , "Home" ,FormMethod.Get)) {
2 <input type="text" name="q" />
3 <input type="submit" value="Search">
4 }
BeginForm HTML辅助方法利用路由引擎找到HomeController控制器的Search操作。它在后台使用GetVirtualPath方法,该方法在RouteTable的Routes属性中——在global.aspx中,Web应用程序注册所有路由的位置。
标签:type get请求 发送post请求 post方法 好的 重复 arch text font
原文地址:http://www.cnblogs.com/imstrive/p/6519926.html