1

公共类文件common.cs:这个文件,我通过单击添加 ->新项目->类添加

public class common
{
  public int v,n;
   public int da()
     {
         return n= v;
     }

}

另一个文件:它是一个网页文件名是a1.aspx.cs:

common c = new common();

c.v = Convert.ToInt32(TextBox1.Text);
c.da();
Response.Redirect("ulogin.aspx");

文本框中的值存储在 cv 变量中

所以,现在,我想要在另一个名为ulogin.aspx.cs的网页文件中的 textbox1.text 中给出的值

我使用了这段代码:

common d=new common();
d.da();

Label1.Text = Convert.ToString(d.n);

但运行后显示值为0.....

4

4 回答 4

2

在 Web 应用程序中,您需要将信息保存在某个公共位置(通常Session针对每个用户信息或Application每个应用程序信息),以便可以在应用程序中的不同页面和用户控件之间使用它。

我建议向您的页面和用户控件添加一个会话支持的属性,该属性访问一个公共会话 [“变量”]。类似于以下内容。

(即假设您的代码在单击按钮时被执行)

a1.aspx.cs

public int ValueToStore 
{
   get
   { 
       return Session["ValueToStore"] != null
           ? (int)Session["ValueToStore"]
           : 0
   }
   set
   {
       Session["ValueToStore"] = value;
   }
}

protected void Button1_Click(object sender, EventArgs e)
{ 
    ValueToStore = Convert.ToInt32(TextBox1.Text);
    Response.Redirect("ulogin.aspx");
}

ulogin.aspx.cs

public int ValueToStore 
{
   get
   { 
       return Session["ValueToStore"] != null
           ? (int)Session["ValueToStore"]
           : 0
   }
   set
   {
       Session["ValueToStore"] = value;
   }
}

protected void Page_Load(object sender, EventArgs e)
{
     Label1.Text = ValueToStore.ToString();
}    

如您所见,您现在在两个页面之间有一些代码重复,因此下一步将考虑实现一个作为公共属性的基本页面,然后从 a1.aspx 和 ulogin.aspx 继承它。

IE

public class a1 : BasePage
{
    ...
}

public class ulogin : BasePage
{
    ...
}

public class BasePage : System.Web.Page
{
    //Put ValueToStore property here.
}
于 2013-09-27T08:18:15.850 回答
1

有很多用户访问同一个页面,他们可能设置不同的值,预期结果是用户在Page 1设置的任何值都需要在Page 2中显示。

任何 Web 技术都是无状态的,因为它们使用的 HTTP 又是无状态的。

但是有很多方法可以做到这一点,每种方法都有自己的优势。

- 会议 -

请使用会话变量来存储您的值,这是一种变量。

每个用户都有不同的会话变量要存储,并且其可用直到用户注销(即直到会话可用)

存储:服务器内存

        public class Common
        {
          public int? Data
          {
             get
             {
                if(Session["Data"]!=null)
                {
                    return  int.Parse(Session["Data"].ToString());
                }
                return null.
             }
             set
             {
               Session["Data"]=value;
             }
          }

        }

- 请求参数 -

您可以使用查询字符串将值从一个页面传递到另一个页面。

第 1 页

int value=1;
Response.Redirect("Page2.aspx?data="+value.ToString())

第2页

if(!string.IsNullOrEmpty(Request["data"]))
{
int value=int.Parse(Request["data"]);
}

--发布--

您还可以将值从一页发布到另一页。

第 1 页 (html)

<form action="page2.aspx" method="post">
<input type="hidden" name="data" value="1"/> 
</form>

第2页

if(!string.IsNullOrEmpty(Request["data"]))
{
 int value=int.Parse(Request["data"]);
}

还有更多方法......您必须选择适合您的场景的方法。

阅读 ASP.NET 状态管理

http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx

于 2013-09-27T08:17:33.267 回答
0

将成员 v 转换为 common 的属性。将 common 存储到 Session 变量中。一旦你准备好获取值,将会话变量转换为 common 并从那里访问 v 属性。

于 2013-09-27T09:30:18.390 回答
0

如果页面ulogin.aspx 设计为始终从a1.aspx 重定向,则在ulogin.aspx 中设置PreviousPageType 并通过this.PreviousPage 实例获取上一页值。(跨页回发)

于 2013-09-27T08:20:06.443 回答