gpt4 book ai didi

c# - NullReferenceException - 无法弄清楚为什么初始化对象重置为 null

转载 作者:行者123 更新时间:2023-12-03 23:27:17 25 4
gpt4 key购买 nike

好的,我的代码隐藏文件中有以下类。这是一个非常简单的页面,只需要 TestIssue 对象,将条目加载到文本框中以编辑条目,然后在单击保存时调用更新数据库中 TestIssue 的函数。

这是代码。

public partial class Issues_Edit : System.Web.UI.Page
{
protected string filter_test_director;
protected TestIssue myIssue;

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string id = Request.QueryString["id"];

id = "1358";
myIssue = new TestIssue(Convert.ToInt32(id));

issue_date.Text = myIssue.Entry_Date.ToString();
issue_author.Text = myIssue.Author.Full_Name_RFL;

issue_text.Text = myIssue.Entry.Replace("<br>", "\n");
issue_text.Height = 150;
issue_text.Width = 400;

}

}

protected void SaveButton_Click(object sender, EventArgs e)
{
myIssue.Entry = issue_text.Text;

int update = TestIssueDB.UpdateIssue(myIssue);

if (update == 1)
{
//Response.Redirect("program.aspx?p=" + myIssue.Program_ID);
}
else
{
top_message.Text = "Error Updating Issue Text";
}

}

}

现在的问题是,当调用 Save 函数时,它会在 myIssue 对象上出现 nullreferenceexception 错误。我不太确定这是为什么,因为这与我在其他一些页面上处理其他对象的方式完全相同,对象在 page_load 上方声明,在 page_load 中初始化,然后在其他函数中修改。

知道为什么该函数中不存在 myIssue 对象吗?

最佳答案

您永远不会在单击按钮时初始化该变量!

对页面的每个请求都会创建一个新的页面实例。通常,您在上一个请求期间所做的任何事情都不会对当前请求产生任何影响。特别是,您在第一个请求中设置了 myIssue 字段,但在第二个请求中,IsPostBack 为 true,因此您的初始化代码没有被执行。

关于c# - NullReferenceException - 无法弄清楚为什么初始化对象重置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8568075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com