C# 在两个“变量”之间传递值;完全不同”;页

C# 在两个“变量”之间传递值;完全不同”;页,c#,asp.net,C#,Asp.net,要明确的是,这两个页面仅在逻辑上相关,即my FirstPage.Aspx中的值将值传递给my SecondPage.Aspx,因此它控制我的SecondPage.Aspx中控件的组件和某些属性。SecondPage.Aspx不是从FirstPage.Asp的重定向或传输。对不起,我已经厌倦了阅读所有的答案,除了我真正需要的答案 假设第一个页面包含一个文本框,该文本框从用户或web管理员处获取一个值,以设置其关于第二个页面上gridView页面大小的首选项或第二个页面上标签的文本属性 我想探索一

要明确的是,这两个页面仅在逻辑上相关,即my FirstPage.Aspx中的值将值传递给my SecondPage.Aspx,因此它控制我的SecondPage.Aspx中控件的组件和某些属性。SecondPage.Aspx不是从FirstPage.Asp的重定向或传输。对不起,我已经厌倦了阅读所有的答案,除了我真正需要的答案

假设第一个页面包含一个文本框,该文本框从用户或web管理员处获取一个值,以设置其关于第二个页面上gridView页面大小的首选项或第二个页面上标签的文本属性

我想探索一下我的选择


PS:我被告知使用数据库存储第一页的值,然后在带有标签的页面上存储。例如,我连接到数据库并检索值,然后将其设置为标签…这是一种最佳做法吗?让页面在每次加载时连接以设置一些值有时它只是一个int,如5,大多数时候,我已经连接到数据库,以便在gridView或任何数据绑定控件中显示某些表的数据

编辑: 对不起,如果我有点粗鲁的话,我只是突然意识到我得到的答案与我读到的完全不同!。。当然,多亏你们中的一些人提到了数据库解决方案,我希望我能为我的具体案例提供一个示例或一篇文章,因为我认为即使它很简单,但也很重要…

您可以使用:

  • 会话变量
  • 饼干
  • 数据库值
他们每个人都有自己的优点和缺点

如果您想在下次访问第2页时存储该值,请使用数据库值。如果没有,请使用会话变量

数据库值将为您提供一个持久值,然后您可以在那里存储其他此类用户变量

会话将提供持久数据,但仅针对当前会话。如果会话超时,数据将丢失


根据您所说的,我将假设一个数据库值。

我建议您从这里开始:


如果我理解你的问题,你正在寻找答案。如果一个页面没有发布到第二个页面,则需要以某种方式持久化数据(数据库、会话、xml文件等)。但是,通过阅读您的问题,您听起来好像只想跨页面发布…

ASP.NET框架提供了几种机制来维护跨多个HTTP请求的上下文。您希望跨调用访问的数据可以存储在此上下文中。您所要做的就是决定您希望此上下文被维护多长时间(因为它会消耗资源),以及您是否希望此上下文在多个服务器上可用

  • :在应用程序的生命周期内维护,即从ASP.NET首次加载应用程序开始,直到出于任何原因卸载应用程序为止
  • :ASP.NET能够将从特定客户端(IP地址)发出的一系列HTTP请求识别为一个会话,这些请求在时间上彼此接近。它可以创建一个在这样一个会话中持久存在的会话上下文,您可以在其中存储会话中的调用可以访问的数据。通过将会话状态与数据库或共享内存关联,可以使其可用
  • 数据库
  • :您可以使用Viewstate来维护上下文,但请记住,Viewstate是通过每一个请求/响应的连线传输的。众所周知,它会变得相当大,特别是当你使用控件时
  • Cookies:同样,对于每个请求/响应,都会通过网络传输

  • 你可以使用cookies、session等,但是如果你想传递一些定义页面全部内容的东西,比如某种ID,你可能只想把它放在QueryString中。(例如:default.aspx?id=4)

    缺点:每个人都可以读取(或更改)值,但不适用于关键数据


    优点:每个人都可以读取值,链接可以发送给其他人

    我认为更好的答案是“控制状态”

    参考:

    但我无法在我的案例中实现这一点,两个不同的页面 例如:web用户控件放置在News.aspx上,文本框(其值将分配给News.aspx上的控件)放置在myAdmin.aspx页面中

    老实说,我不太懂代码


    所以!你认为这是最好的解决方案吗?如果是,您认为它可以用于我的案例(两个不同的页面)?

    您的问题非常令人困惑,我花了很多时间才理解您的实际需要。因为HTML中没有事件,所以需要使用JavaScript和某种web服务(AJAX)

    页面A将把值存储在数据库中,页面B上的JavaScript将不断检查数据库中的新值,获取它们并输出给用户。为了实现这一点,它需要连接到一些webservice/webmethod,这些webservice/webmethod将从数据库返回值到您的页面。我们可以找到一个很好的例子

    或者,您可以使用每5秒刷新一次页面

    <meta HTTP-EQUIV="Refresh" content="5">
    
    
    

    然后在
    Page\u Load
    server事件上检查新的数据库值。

    你是说你读了很多文章,找到了很多与你的问题相同的答案,但现在你在这里提问是因为你不喜欢你找到的答案?听起来你应该接受人们推荐的解决方案可能是正确的!我想推荐它是有原因的…;-)当然不是!所有答案都在两个页面之间传递,其中一个是对另一个页面的反应(响应,重定向),一个母版页和它的页面!我的例子是两个不同的页面,它们没有连接,它们不会相互指向,我只想将其中一个页面的值设置为另一个页面上的控件,并且我确信有一种方法可以避免noob!在听了很多人的意见后,数据库是我的解决方案,但仍然存在一些问题