我的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>
任何人都可以解释原因,以及如何解决它?
答案 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事件触发器。