asp.net状态保存页面

时间:2014-01-07 12:13:00

标签: c# asp.net

我在asp.net中有一个网页,其中包含textbox,一个按钮和一个网格视图.gridview从数据库和textbox加载一些内容,按钮用于应用搜索。现在我的问题是,当我搜索一些,并在网格视图中加载搜索结果。如果我单击网格视图中的编辑按钮,然后我重定向到新页面,并在完成编辑后单击返回编辑页面。当我回到我的页面时,textbox是空白的。当我回到页面时,我想要保存我的状态

2 个答案:

答案 0 :(得分:2)

我会在重定向网址中“保存”此信息,您将在保存后打开。

  1. 在搜索中,将搜索参数作为url参数传递。
  2. 在“修改”按钮上,在网址后添加“?returnUrl = ...”。
  3. 在编辑页面中,单击“保存”时,您可能需要保存一些代码。如果成功,请使用您在Request.Parameters中找到的URL调用Response.Redirect。

答案 1 :(得分:1)

问题正如您的帖子正确指出这是一个关于“”的问题。 ASP.NET提供了不同的选项来保持往返之间的信息。

在客户端:

您可以使用以下方式在页面中存储信息:

ViewState Hiddend Fields :Viewstate实际上是一个隐藏字段,离开页面后数据将会丢失。

或在网站级别:

Cookie :这些可能是暂时的或永久性的,并且可以存储的内存量有限制。

如果您想要两页之间的通信,也可以使用

查询字符串:它是附加在结尾网址后跟?的内容。示例:?category = basic& price = 100。但是这也有length limitations。例如,在IE中是2083个字符。

在服务器端

您可以使用:

会话应用程序状态:两者都是键/值对象,不同之处在于,当用户离开时,会话将结束,并且当应用程序为每个用户时,其值是唯一的可在所有会话中使用,并且只要应用程序启动,它将保持可用状态。

解决您的问题:您可以使用以下两个:

  1. 会话:将搜索值存储在服务器端,或
  2. 使用查询字符串跨页面进行通信
  3. 在我看来,使用起来更简单的是会话,即使你打开了同一页面的多个实例也可能有一些缺点。但是,由于目的是存储搜索值,因此主要优势(推荐)具有查询字符串,因为这不仅允许您保存搜索,而且不会出现会话具有多个实例的问题您可以通过像几个搜索引擎那样共享“URL”来共享搜索。

    您可以在此处找到如何向查询字符串添加值:

    Querystring - Add values to querystring in c#

    并且要阅读这些值,只需使用:Request.QueryString("var name")