【问题标题】:Why is the default form post method NOT GET?为什么默认的表单发布方法不是 GET?
【发布时间】:2011-12-16 12:46:47
【问题描述】:

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 方法?

【问题讨论】:

  • 更好的问题是,您为什么不直接定义方法以在 100% 的时间内获得预期结果?

标签: html forms post webforms get


【解决方案1】:

ASP.Net 将表单的method 设置为POST。我假设按下按钮会导致POST 请求比GET 更具语义,并防止查询字符串中带有视图数据的非常长的url。

检查您的 HTML 源代码,您将看到 method="post" 属性。

【讨论】:

    猜你喜欢
    • 2011-01-19
    • 1970-01-01
    • 2012-01-21
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多