ASPX(c#behind)页面之间的值传递不起作用

时间:2017-09-23 14:53:28

标签: c# asp.net .net web

我的default.aspx在页面中包含以下代码:

Label1.Text = datatable.Rows[0].Field<string>(1);

Response.Redirect("Welcome.aspx?Parameter=" + Label1.Text);

在welcome.aspx页面中,我有以下page_load代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            Label2.Text = Request.QueryString["Parameter"].ToString() + ", welcome to the website!";
        }

当我在浏览器中查看网站时,在欢迎页面上,我可以在URL中看到参数已被传递,但标签文本未更新。看起来似乎没有运行page_load代码?

根据要求,欢迎页面的aspx如下:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .auto-style1 {
            width: 503px;
            height: 249px;
            margin-left: 67px;
        }
    </style>
</head>
<body>
    <form id="form2" runat="server">
    <div style="margin-left: 280px">

        <br />
        <br />
        <br />
        <img alt="" class="auto-style1" src="Logo.jpg" /><br />
        <br />
        <br />
        <asp:Label ID="Label2" runat="server">testing</asp:Label>
        <br />
        <br />
        <br />

    </div>
    </form>
</body>
</html>

任何人都可以解释原因,以及如何解决它?

1 个答案:

答案 0 :(得分:1)

会话状态可能是该特定方案的更好选择,因为只要用户登陆WelcomePage,您就会需要它。

Session["Parameter"] = datatable.Rows[0].Field<string>(1); 
// Set a break point at Redirect, and check to make value is assigned 
// to Session["Parameter"] before redirecting.
Response.Redirect("Welcome.aspx");

protected void Page_Load(object sender, EventArgs e)
{
   Label2.Text = Session["Parameter"] + ", welcome to the website!"; 
}

注意: 如果上述解决方案无法解决问题,最糟糕的情况是 删除 Welcome.aspx 创建 一个没有母版页的新版本,并查看Page_Load事件触发器。