c# - 标签值在我将其分配给对象时发生变化
问题描述
我有一个随机数分配给我的标签,然后当我按下网站上的按钮时,它会调用标签并将其分配给一个对象标签显示的内容和分配给对象的内容是两个不同的数字
html
<td><asp:Label ID="Ucodelbl" runat="server" Text="Label" Font-
Size="Large"></asp:Label></td>
<td colspan="2"><asp:Button ID="Button1" runat="server" Text="Register"
OnClick="Button1_Click" /></td>
C#
protected void Page_Load(object sender, EventArgs e)
{
Random rnd = new Random();
Ucodelbl.Text = rnd.Next(0, 10000).ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
u.Ucode = Ucodelbl.Text;
u.Upass = Upasstxt.Text;
u.Uname = Unametxt.Text;
if (pic.HasFile)
{
pic.SaveAs(Server.MapPath("mypics/") + pic.FileName);
u.Upic = pic.FileName;
}
s.registerUser(u);
Response.Redirect("Login.aspx");
}
现在我遇到的问题是我在 Page_Load 中为 Ucodelbl 分配了一个随机数
然后在 Button1_Click 我试图将它分配给 u.Ucode 但是当我加载网站时它在页面本身上表示的值与插入到 u.Ucode 的值不同
解决方案
当您单击按钮时,您会将页面发送回服务器,以便您的Button1_Click
事件处理程序可以处理按钮单击事件。
问题是Ucodelbl.Text
每次页面加载时您都在运行分配......这意味着您在第一次加载页面(如预期)时会获得一个新的随机数,但是当您单击按钮时会再次获得。
为了阻止这种情况的发生,您需要使用if
基于Page.IsPostBack
属性的语句来包装它......
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Random rnd = new Random();
Ucodelbl.Text = rnd.Next(0, 10000).ToString();
}
}
推荐阅读
- java - 在具有相对路径的 xpath 中使用“祖先”
- asp.net - 如何设计一个有效的 Ajax PUT 请求和控制器?
- python - 类型错误:_getfullpathname:路径应该是字符串、字节或 os.PathLike,而不是函数
- java - Android Studio 产生多个 java 进程!如何在低内存机器上最小化其内存使用量?
- python - 无法将我的输出逐行保存到我的 csv 中
- r - 基于向量对行进行编号
- javascript - 仅将日期与 luxon Datetime 进行比较
- php - 更改函数内的指针值
- java - 如何创建直方图?
- reactjs - 在 ReactJS 中创建父“工作区”组件