ASP.NET Web Forms中TextBox值未正常显示,返回System.Web.UI.WebControls.TextBox
问题:页面显示
System.Web.UI.WebControls.TextBox而非用户输入内容 输出结果

本应显示文本框中用户输入的数据,但实际却显示了System.Web.UI.WebControls.TextBox。
相关代码
WebForm1.aspx.cs
Response.Redirect("~/CORView.aspx?fname=" + firstname + "&lname=" + surname + "&idnumber=" + userid);
WebForm2.aspx.cs
lbl_id.Text = Request.QueryString["idnumber"]; lbl_fname.Text = Request.QueryString["fname"]; lbl_surname.Text = Request.QueryString["lname"];
解决方案
问题根源是跳转时直接拼接了TextBox控件对象,而非获取控件的Text属性值。修改WebForm1的代码,将每个控件替换为.Text即可:
Response.Redirect("~/CORView.aspx?fname=" + firstname.Text + "&lname=" + surname.Text + "&idnumber=" + userid.Text);
额外提醒:直接拼接URL参数存在XSS安全风险,建议对参数值进行URL编码,示例如下:
using System.Web; // 对输入值进行URL编码 string encodedFname = HttpUtility.UrlEncode(firstname.Text); string encodedLname = HttpUtility.UrlEncode(surname.Text); string encodedId = HttpUtility.UrlEncode(userid.Text); // 使用编码后的值拼接URL Response.Redirect($"~/CORView.aspx?fname={encodedFname}&lname={encodedLname}&idnumber={encodedId}");
内容的提问来源于stack exchange,提问作者crml0_0
相关产品推荐
相关产品推荐

