如何从另一个页面读取已发布的Json字符串并将其分配给控件?

时间:2014-11-29 10:46:19

标签: c# asp.net json

我正在使用ASP.NET开发一个网站。我有一个用户可以放置广告的页面。因此,在用户填写必填字段后,我将其重定向到另一个页面进行审核。在该页面中,我暂时显示用户输入的内容。所以,如果他们错了,他们可以回去,否则可以确认。 所以我避免使用会话将数据传递到另一个页面,因为它对服务器有成本。这些数据也不重要。 所以我把它们放在一个Json字符串中并发布它们。

这是我尝试过的。

        JavaScriptSerializer json = new JavaScriptSerializer();
        Ad = new AdDetails.Ad();
        Ad.ContinentIdRef = byte.Parse(ddContinent.SelectedValue);
        Ad.ContinentName = ddContinent.SelectedItem.Text;
        Ad.CountryIdRef = byte.Parse(ddCountry.SelectedValue);
        Ad.CountryName = ddCountry.SelectedItem.Text;
        Ad.CityIdRef = UInt16.Parse(ddCity.SelectedValue);
        Ad.CityName = ddCity.SelectedItem.Text;
        //......
        string jsonString = json.Serialize(Ad);

我的按钮代码是

<asp:Button ID="btnCheckAd" runat="server" UseSubmitBehavior="false" Text="Check My Add" CssClass="btn btn-success" Width="130" OnClick="btnCheckAd_Click" PostBackUrl="~/CheckAd.aspx" />

所以现在我想从CheckAd.aspx中检索这个Json字符串并读取这些值来设置标签和文本框值。那怎么办?

1 个答案:

答案 0 :(得分:0)

试试这样:

Request.InputStream.Position = 0;
System.Text.Encoding encoding = Request.ContentEncoding;
using (var inputStream = new StreamReader(Request.InputStream,encoding))
{
  strJSON = inputStream.ReadToEnd();
}

JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
object serJsonDetails = javaScriptSerializer.Deserialize(strJSON, typeof(object));