【问题标题】:Passon json object from one page to another in asp.net webform在asp.net webform中将json对象从一个页面传递到另一个页面
【发布时间】:2017-01-11 06:26:24
【问题描述】:

我是两个页面,我需要将某些数据作为 json 对象传递给其他页面。

Page1.aspx 代码

obj.Name= "My Name";
obj.Age= 30;
obj.Country= "Japan";
.....
.....
string json = JsonConvert.SerializeObject(obj);

Response.redirect("Page2.aspx");

Page2.aspx

当我进行重定向时,如何将此信息传递给 page2.aspx。

我可以通过一种方法将其作为表单对象传递到其中一个隐藏字段中,然后对其进行反序列化。

我想知道是否还有其他简单的方法。

【问题讨论】:

  • 查询字符串(如果不是太长)。也许在 base64 上
  • 这是我的担心。特别是在多语言的情况下,它可能会很长。
  • 好吧,也许你可以使用会话变量。并在查询字符串上发送一个动态键
  • 为什么不使用 session 呢?

标签: c# asp.net json webforms


【解决方案1】:

怎么样

Response.redirect("Page2.aspx?MyJson=json");

并在“Page2.aspx”中读取值:

string FromJson = Response.QueryString["MyJson"].ToString();

【讨论】:

  • 我担心对象的长度。现在我作为一个隐藏域传递
  • @Learning 你可以看看pass values across the pages in ASP.net
  • 如果 json 大小很大,您可以将 json 文件保存在磁盘上并在另一个页面上检索它。并且可以在redirect中传递文件名
【解决方案2】:

为此,您可以使用会话变量。

obj.Name= "My Name";
obj.Age= 30;
obj.Country= "Japan";
.....
.....
string json = JsonConvert.SerializeObject(obj);

Session["json"] = json;

Response.redirect("Page2.aspx");

然后在 page2.aspx 上使用 session 获取值

【讨论】:

  • 在隐藏字段中将json对象作为vlue传递不是更好,以防会话超时
  • 视项目需求而定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多