请注意,我想请教的是在asp.net mvc再次强调下是在asp.net mvc里,不是webform里。提交方法,和获取方法,分别怎么写呢?他们的区别是什么呀。我找了一些示例发现都是默认post的。<% using (Html.BeginForm()) { %>这样的。请问如果是get的应该怎么写呢?controler里是如何获取的呢,url有什么变化吗?希望能给个全面的分析,非常感谢呀~

解决方案 »

  1.   

    ”post”和”get”有什么区别在Form里面,可以使用post也可以使用get。它们都是method的合法取值。但是,post和get方法在使用上至少有两点不同:
    1、Get方法通过URL请求来传递用户的输入。Post方法通过另外的形式。
    2、Get方式的提交你需要用Request.QueryString来取得变量的值,而Post方式提交时,你必须通过Request.Form来访问提交的内容。仔细研究下面的代码。你可以运行之来感受一下:代码
    <!--两个Form只有Method属性不同-->
    <FORM ACTION=“getpost.asp” METHOD=“get”>
    <INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>
    <INPUT TYPE=“submit” VALUE=“Method=Get”></INPUT>
    </FORM>
    <BR>
    <FORM ACTION=“getpost.asp” METHOD=“post”>
    <INPUT TYPE=“text” NAME=“Text” VALUE=“Hello World”></INPUT>
    <INPUT TYPE=“submit” VALUE=“Method=Post”></INPUT>
    </FORM><BR>
    <BR><% If Request.QueryString(“Text”) <> ““ Then %>
    通过get方法传递来的字符串是: “<B><%= Request.QueryString(“Text”) %></B>“<BR>
    <% End If %><% If Request.Form(“Text”) <> ““ Then %>
    通过Post方法传递来的字符串是: “<B><%= Request.Form(“Text”) %></B>“<BR>
    <% End If %>
      

  2.   

    我晕 get post 只是表单提交的两种方式
    区别就是get是通过url传递
    post不可见的方式传递。
    获取 get  Request.QueryString["Name"]
    post Request.Forms["Name"]
    Name=》控件name
      

  3.   

    Html.BeginForm有很多重写方法,如果用get方式提交应该这样写:
    <%using(Html.BeginForm("Action名","Controller名","GET") %>如果是Post,可以把GET替换为POST,当然默认就是POST,可以省略
    至于接收,如果用POST,可以用Request["Name值"].ToString()这样的方式,GET就不清楚了,你可以写一个Request,然后断点看一下Request里边都有什么内容,找到对应的值
      

  4.   

    错了错了错了,第三个参数应该是
    FormMethod.Post或者FormMethod.Get
      

  5.   

    get方式在后台接收也可以用Request[""]方式,url是有变化的,例如
    http://localhost/ActionName/ControllerName?FormFieldName=Value
      

  6.   

    十分感谢hrabeyond我已经按你的方法搞定了,谢谢呀~明天揭帖~