所在的位置: html >> html资源 >> 在ASPNETMVC5中使用Begin

在ASPNETMVC5中使用Begin

ASP.NETMVC5GET和Post

01第一节:表单概述

对于Web应用程序的开发,少不了与Html标记打交道。在ASP.NETMVC5中,微软对一些重要的Html标记进行了封装,这样在使用时,就不需要手写大量的Html代码,而是使用微软封装好的Html帮助方法自动生成Html标记,减少了Html标记的录入。

与表单相关的Html标记是form标记,其中有很多的属性需要设置,那么在ASP.NETMVC5中,可以使用

Html.BeginForm()辅助方法来替代form标记。

form标记是表单标记,form标记有一个重要的属性是method,默认method属性的值为get,表示提交的表单数据是按HTTPGET请求提交数据的,这是form标记默认的动作。

¥30.NETMvc5深入编程-从0基础到深入学习线上.NET培训课程淘宝¥购买已下架

可以将form表单中的数据提交给远程的第三方服务器,也可以提交给本地服务器,这完全取决于给action属性指定的url。

在ASP.NETMVC5中,使用

Html.BeginForm()帮助方法来生成HTML的form标记,代码如下:

using(Html.BeginForm()){div/div}

由于此C#代码是放在视图中使用的,所以要使用

符号,且Html.BeginForm()还要配合using关键字使用。将一些需要提交到服务器的html标记中的数据放在{}内即可。

02第二节:Method特性

在ASP.NETMVC5的Html.BeginForm()帮助方法中,可以使用method指定是按HTTPGET提交还是按HTTPPOST提交。

一、HTTPGET:

使用HTTPGET提交表单数据时,其相关数据会暴露在URL上,即使使用了URL编码,照样可以解码并查看到真实的数据,存在数据安全风险。但有个好处就是URL地址便于收藏。

二、HTTPPOST:

使用HTTPPOST提交表单数据时,提交的数据是被放在HTTP主体对象中,没有放在URL中,显然,POST请求要比GET安全,不易暴露数据,但URL地址不能收藏。

03第三节:HTTPGET请求

第一步:编写表单代码

在Html.BeginForm()标记中可以指定method的值为GET请求,如下代码:

using(Html.BeginForm(Index,Student,FormMethod.Get)){div

Html.TextBox(name)inputtype=submitvalue=提交//div}

在这里指定使用HTTPGET请求将数据提交到Student控制器的Index()方法中。Html.BeginForm()帮助方法的3个参数说明如下:

第1个参数指定访问的操作方法名称,就是控制器中的操作方法名称,不带()和参数,是一个字符串类型的参数值。第2个参数指定访问的控制器名称。就是指定在哪个控制器哪个操作方法中访问。第3个参数使用FormMethod枚举指定HTTP请求方式,共有2个,一个是Get,一个是Post。

使用FormMethod只能指定Get和Post请求,有这两种足够了。

注意:

Html.BeginForm()帮助方法具有很多的重载版本,这里只是使用了其中的一个重载参数。

第二步:开始提交数据

现在我们使用

Html.BeginForm()使用HTTPGET请求方式提交数据,代码如下:

{Layout=null;}!DOCTYPEhtmlhtmlheadmetaname=viewportcontent=width=device-width/title/title/headbody

using(Html.BeginForm(Index,Student,FormMethod.Get)){div

Html.TextBox(name)inputtype=submitvalue=提交//div}/body/html

在此视图中,只有一个文本框和提交按钮放在了form提交表单中,提交时就会将文本框中的值提交到数据库中。对于提交按钮,必须使用type=“submit”类型的按钮,否则不能提交表单。

在运行后页面中的文本框中输入一些文本值,表示要提交到服务器的数据,单击“提交”按钮即可执行提交操作。

从提交的结果上看,GET提交的数据是放在了URL上,给暴露出来了,这就是GET请求的特点。

04第四节:HTTPPOST请求

第一步:编写视图代码

现在我们将上面的视图代码修改为POST提交,视图代码如下:

using(Html.BeginForm(Index,Student,FormMethod.Post)){div

Html.TextBox(name)inputtype=submitvalue=提交//div}

将该视图运行后,给文本框中输入一些内容,再次提交一下。

当单击过“提交”按钮之后,此时URL上什么也没有,但确实已经提交成功了,只是POST请求是通过HTTP主体提交的。我们看一下提交的HTTP头信息:

从捕获的结果上看,在“Headers”中,我们可以看到一些基本的请求信息,包括请求的URL、请求方式、状态码等等。

在FormData中找到了name的值为abc,正是我们提交的数据。这个数据也是表单中用户输入的数据,form会收集表单中输入控件的值,并组织好一起通过主体发送到服务器上。

第二步:接收提交的数据

提交表单时,可以提交到其它的服务器上,也可以提交到本地的服务器上,在上面的代码中,就是提交到本地服务器的。

using(Html.BeginForm(Index,Student,FormMethod.Post)){div

Html.TextBox(name)inputtype=submitvalue=提交//div}

现在我们在Student控制器的Index()方法中接收提交的数据。在文本框中输入“小强”文本值,单击“提交”按钮开始提交数据。

从提交的结果上看,表单上提交的数据已经显示在页面上了,表示提交成功了,是在操作方法中使用ViewData存储提交后的数据,并返回给视图。

publicActionResultIndex(stringname){ViewData[n]=name;returnView();}

Html.TextBox(name)中的name的值必须与接收方法的参数名一致才可以接收。因为表单的提交机制就是根据这个值来查找相关的控件并提交给正确的操作方法。




转载请注明:http://www.aierlanlan.com/rzgz/5573.html

  • 上一篇文章:
  •   
  • 下一篇文章: