ASP.NET MVC5高级编程 之 表单

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请求的所有参数都在URL中,因此可以为GET请求建立书签。可以在电子邮件或网页中将这些URL作为超链接来使用,除此之外,还可以保留所有的表单输入值。
  • 更重要的是,因为GET方法代表的是幂等操作和只读操作,所以它是做这些工作的最好选择。Get不会(或不应该)改变服务器上的状态,所以客户端可以向服务器重复地发送GET请求而不会产生负面影响。
  • POST请求可以用来提交信用卡交易信息、向购物车中添加或者修改密码等。POST请求通常情况下会改变服务器上的状态,重复提交POST请求可能会产生不良后果。

通常情况下,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应用程序注册所有路由的位置。

时间: 2024-12-29 11:53:54

ASP.NET MVC5高级编程 之 表单的相关文章

MVC5高级编程_表单和html辅助方法

使用HTML辅助方法关键在于 确保HTML页面链接中的URL指向正确的位置.表单元素拥有适用于模型绑定的合适名称和值,以及当模型 绑定失败时其他元素能够显示相应的错误提示消息. 1.表单的使用     @using(Html.BeginForm("Searhch", "Home", FormMethod.Get,new { target = "_blank", @class="editForm", data-validatab

ASP.NET MVC5 高级编程 第5章 表单和HTML辅助方法

参考资料<ASP.NET MVC5 高级编程>第5版 第5章 表单和HTML辅助方法 5.1 表单的使用 5.1.1 action 和 method 特性 默认情况下,表单发送的是 HTTP Post 请求 EF 对于外键关系,数据库名称等也有约定.这些约定取代了以前需要提供给一个关系对象映射框架的所有映射和配置. GET 方法:GET 请求的所有参数都在URL中,因此可以为GET 请求建立书签. POST 方法:浏览器把输入值放入 HTTP 请求的主体中. 5.2 辅助方法 可以通过视图的H

ASP.NET MVC5 高级编程 第3章 视图

参考资料<ASP.NET MVC5 高级编程>第5版 第3章 视图 3.1 视图的作用 视图的职责是向用户提供界面. 不像基于文件的框架,ASP.NET Web Forms 和PHP ,视图本身并不被访问,浏览器,并不能直接指向一个视图并渲染它.相反视图被控制器渲染,因为控制器提供了渲染所需要的数据. 一般情况下,控制器需要向视图提供一些信息,所以这会传递一个数据转移对象,叫做模型.完成这一过程需要两部分操作,其中一个是检查由控制器提交的模型对象,另一个是将其内容转化为HTML格式. 3.2

ASP.NET MVC5 高级编程 第2章 控制器

参考资料<ASP.NET MVC5 高级编程>第5版 第2章 控制器 控制器:响应用户的HTTP 请求,并将处理的信息返回给浏览器. 2.1 ASP.NET MVC 简介 MVC 模式中的控制器(controller)主要负责响应用户的输入,并且在响应时修改(Model).通过这种方式,MVC 中的Controller 主要关注的是应用程序流,输入数据的处理,以及对相关视图(View)数据来源的提供 MVC 模式中 URL 首先告诉路由去实例化哪个控制器,调用哪个方法,并为该方法提供需要的参数

ASP.NET MVC5高级编程 之 视图

1.1理解视图约定 当创建一个项目模版时,可以注意到,项目以一种非常具体的方式包含了一个结构化的Views目录.在每一个控制器的View文件夹中,每一个操作方法都有一个同名的视图文件与其对应.这就提供了视图与操作方法关联的基础. 1 public ActionResult Index() 2 { 3 return View(); 4 } 视图选择逻辑在/Views/ControllerName目录(这里就是去掉Controller后缀的控制器名)下查找与操作方法同名的视图.此处选择的是/View

asp.net MVC中控制器获取表单form提交的数据之实体类数据

第一次写记录文章,难免有不足之处:欢迎指出. 1.新建一个mvc项目如: 2.新建一个Test.cs 注意get,set方法不能简写 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 using System; using System.Collections.Generic; using System.Linq; usi

JavaScript高级程序设计之表单基础

A FORM <form id='form' action='http://a-response-url' method="post"> <!--maxlength 最大值 placeholder 占位符 autofocus 自动聚焦--> <input type='text' name='name' size='20' maxlength='10' placeholder='initial' autofocus /><br /> <

Html5之高级-2 HTML5表单属性(属性介绍、属性详解)

一.属性介绍 属性介绍 - 有一些输入类型要求使用特定的属性才能显示效果,如前面提到过min,max,step. 其他输入类型需要使用一些属性来改进其他性能,或者决定验证过程的重要性.HTML5 标准中再原来的基础上增加了一些新的属性. - Placeholder 属性 - Nultiple 属性 - Autofocus 属性 - Form 属性 二.属性详解 Placeholder 属性 - Placeholder 属性通常用于search输入类型,也可以用在文本域.它表示一个简单提示.单词或

Asp.net MVC4高级编程学习笔记-模型学习第五课MVC表单和HTML辅助方法20171101

MVC表单和HTML辅助方法 一.表单的使用. 表单中的action与method特性.Action表示表单要提交往那里,因此这里就有一个URL.这个URL可以是相对或绝对地址.表单默认的method属性值是get,如果看到表单没有写method属性那就是表示method是get方式提交.另外一种就是post方式. 当使用HTTP Get请求时,浏览器会提取表单中元素的name特性值及相应的value特性值放到查询字符串中.如:http://localhost?search?id=1 如果不想把