gpt4 book ai didi

asp.net - 通过 QueryString 传递对象

转载 作者:行者123 更新时间:2023-12-02 16:05:16 25 4
gpt4 key购买 nike

我有对象 A,该对象又具有对象 B 类型的属性

Class A

property x as Object B

End Class

在我的 ASP.NET 页面上,当我选择映射到 A 类型对象的 gridview 项时,我将该对象序列化到 QueryString 并将其传递到下一页。

但是,如果属性 x 实际上具有某些值,我会遇到问题,因为看起来我超过了 4k 的 QueryString 容量长度(尽管我认为对象没有那么大)

我已经考虑过以下方法来做到这一点

  • session 变量

未使用该方法,因为我读到这是不好的做法。

  • 使用对象的唯一键并在下一页上检索它。

未使用该方法,因为对象不映射到表中的单个实例,它们由来自不同数据库的数据组成。

所以我想我的问题有两个

  • 是否值得使用 GKZip 进一步压缩查询字符串(这可能吗?)
  • 人们还建议使用哪些其他方法来实现此目的?

最佳答案

如果在浏览器中显示下一页的 url 并不重要,则可以使用 context.items 集合。

context.items.add("keyA", objectA)
server.transfer("nextPage.aspx")

然后在下一页:

public sub page_load(...)
dim objectA as A = ctype(context.items("keyA"), objectA)
dim objectB as B = objectA.B
end sub

使用此选项的一个原因是您希望用户相信下一页确实是第一页的一部分。对他们来说,这只是看起来好像发生了回发。

此外,如果使用“下一页”的唯一方法是您第一次来自“第一页”,则使用此方法实际上并不需要唯一 key 。上下文项集合的范围特定于此特定请求。

我同意其他发帖者的观点,他们提到查询字符串上的序列化对象比使用 session 状态更糟糕。如果您确实使用 session 状态,请记住在使用后立即清除您使用的 key 。

关于asp.net - 通过 QueryString 传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/157504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com