【问题标题】:Set property of Page on Response.Redirect("Page.aspx")在 Response.Redirect("Page.aspx") 上设置页面的属性
【发布时间】:2013-07-11 08:55:04
【问题描述】:

我正在使用ASP.NET 3.5C# 2008

我有一个母版页,其中有一个带有ItemCommand 事件的网格视图。此母版页有两个子页面Page1.aspxPage2.aspx

现在,Page1.aspx 有两个部门,比如 div1div2

默认情况下,div1visiblediv2 仍然是 hidden

现在,要求是当我从Page2.aspx redirectPage1.aspx 时,我想要div1 visible。虽然,当我单击MasterPage's gridview 中的任何按钮时,ItemCommand 事件将被触发,这也会将我重定向到Page1.aspx,但那时我只需要显示div2 并希望隐藏div1 .

我可以在ItemCommand 事件上传递查询字符串,同时使用Response.Redirect("Page1.aspx?DisplayDivTwo=true") 重定向到Page1.aspx,但我don't 想采用这种方法。还有其他解决方案吗?我尝试在重定向之前设置属性,但它不起作用。

【问题讨论】:

    标签: asp.net c#-4.0


    【解决方案1】:

    除了 Session 和 Querystring,您还可以使用 Server.Transfer 功能。然后,您可以将数据存储在页面的 Request.Items 属性中。它们将出现在您要转移到的页面上。

    您也可以在您的 aspx 页面中use the Server.Transfer feature in combination with the PreviousPage directive

    MSDN 有一篇很长的文章,介绍了所有可用的选项。见:

    当然您可以使用Single Page Application javascript framework 在客户端构建页面的概念,但实际上只从服务器中获取一个页面。然后,您可以通过 json 服务处理所有来回的数据。

    【讨论】:

    • 感谢您的回答和 +1 的详细信息。但是,如果我使用 Server.Transfer,那么 URL 将保持不变,即上一页。这样可能会给用户造成混淆,即他可见的名称和选项卡与 URL 中显示的不同。仅供参考,在我的网络应用程序中,用户数量有限,而且是技术人员。所以我需要注意 URL 也显示到它们所在的页面。
    • 为什么技术人员会关心页面 url :)。他们应该明白 url 无关紧要。除此之外,如果您需要更新 URL,您将需要使用 cookie、会话或 url 参数。或者您需要更新后端/数据库中反映用户选择的内容。对这些技术和精通技术的用户要非常小心,他们通常会使用多个选项卡,如果您没有正确执行此操作,可能会导致各种问题。
    【解决方案2】:

    您可以使用以下方法

    1.使用查询字符串(你已经实现了)

    2.使用会话变量

    你正在使用 asp.net 更好地使用多视图而不是 Divs

    【讨论】:

    • +1 用于更好地使用多视图而不是 Div。谢谢你:)
    【解决方案3】:

    所以你想在不使用查询字符串的情况下将数据传递到另一个页面?

    你可以使用会话状态

    Session["DisplayDivTwo"]=="true"
    

    并在您的 page1 页面加载

    if(Session["DisplayDivTwo"]!=null)
    string display= (string)Session["DisplayDivTwo"];
    

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 2020-04-27
      • 1970-01-01
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      相关资源
      最近更新 更多