【问题标题】:Preventing ASP.NET viewstate from being transmitted in querystring via form GET防止 ASP.NET 视图状态通过表单 GET 在查询字符串中传输
【发布时间】:2009-08-21 01:01:13
【问题描述】:

我相信我已经禁用了所有控件以及页面本身的视图状态,但查询字符串仍然包含 __viewstate 和 __eventvalidation 参数。

关于检查和/或更改什么的任何想法?是否有一些我可能不知道的视图状态(很可能)导致视图状态以 GET 方法的形式传输?

谢谢, 凯文

编辑:

我使用 GET 方法是因为我希望表单结果能够被添加书签、链接等。这对于 Post 是不可能的,因为表单数据不是通过 URL 传输的。

而且我更喜欢不只是出于审美原因而显示的视图状态/事件验证。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    从表单标签中删除runat="server" 属性将有效地删除隐藏的视图状态和事件验证字段。但是你不能在页面上使用服务器控件,所以我怀疑这就是你想要做的。

    您确定 __viewstate 和 __eventvalidation 字段出现在您的 querystring 中吗?听起来确实有点奇怪。

    发布一些代码并告诉我们您为什么要首先删除隐藏字段。如果您在页面级别禁用视图状态,隐藏字段中的值应该保持相对较小...

    【讨论】:

    • 我认为他的表单方法是“GET”,而不是“POST”。有点奇怪,但这就是它在 QueryString 中的原因。
    • 我的猜测也是:这就是为什么我想查看源代码,它可能不是 VS 默认创建的常规 .aspx...
    • 是的,这就是我所说的“通过表单获取”的意思 抱歉,有时事情在我脑海中是有意义的,然后当我输入它们时,它们就变得不那么有意义了。我将使用请求的信息更新问题。
    • 这是确保没有传输视图状态信息的最简单方法。我删除了服务器标签,一切都很好。
    • 优秀。下次我会记得阅读问题的全部标题。坏在我这边。 :)
    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2014-01-12
    • 1970-01-01
    • 2010-11-06
    • 2017-12-13
    • 1970-01-01
    相关资源
    最近更新 更多