为什么默认表单post方法不是GET?

时间:2011-12-16 12:46:47

标签: html forms post webforms get

What is the default form HTTP method?

如上面的链接中所述,HTML表单中使用的默认发布方法是 GET ,但是当 NOT 包括方法时,我似乎得到了POST方法的结果我的表单声明中的“”“属性:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Ny test</title>
    <link rel="stylesheet" type="text/css" href="StyleSheet.css" />
</head>
<body>

    <form action="Default.aspx" runat="server">

    Name: <input type="text" id="navn" runat="server"/>
    <input type="submit" id="submit" value="Submit!" runat="server" />
    <input type="reset" />
    <br />

    </form>
</body>
</html>

单击提交按钮后,上面的HTML代码会在URL中产生以下输出:

  

http://localhost:62733/WebSiteTest/Default.aspx

当明确使用“GET”方法属性时,我在点击提交按钮后在URL中得到以下输出:

  

http://localhost:62733/WebSiteTest/Default.aspx?__VIEWSTATE=%2FwEPDwULLTE4OTM2NjcwNTBkZIRLV0rUSQgWDDv1sI1c1b%2Fj3fJXcWYiESG%2FlBGieAM4&__EVENTVALIDATION=%2FwEWAwK3qIiCDgK%2B2K%2BHBgLcu4S2BHrznTBZeKNNwWHoyMUQHB9lYE%2B7CEDwuP5UEvN7ULBt&navn=&submit=Submit%21

为什么会这样? HTML表单的默认发布方法是GET,那么为什么在不将GET作为方法属性包含时会得到相反的结果呢?

此Visual Studio / ASP.NET默认为HTML表单中的POST方法吗?

1 个答案:

答案 0 :(得分:2)

ASP.Net将method设置为POST表单。我假设按钮按下会导致POST请求,这些请求比GET更具语义,并且防止在查询字符串中使用viewdata的非常长的URL。

检查您的HTML来源,您会看到method="post"属性。