【发布时间】:2016-04-13 12:57:14
【问题描述】:
我有以下代码:
private List<Student> students;
public List<Student> Collection()
{
students = new List<Student>
{
new Student {Id = 1, Name = "Name1"},
new Student {Id = 2, Name = "Name2"},
new Student {Id = 3, Name = "Name3"},
};
return students;
}
protected void LinkButton1_OnClick(object sender, EventArgs e)
{
var s = (sender as LinkButton).CommandArgument;
var st = students.Find(c => c.Id == int.Parse(s));
students.Remove(st);
repeater.DataBind();
}
在LinkButton1_OnClick 事件中,students 为空。为什么?我在 ASP.NET MVC 中有 similar issue,有人告诉我 MVC 是无状态的,我应该使用 session。 我的问题:ASP.NET Webforms 也是无状态的吗?这个程序通过使用 Sessions 工作,但是如果 ASP.NET Webforms 不是无状态的,为什么我应该在这个例子中使用 Sessions?
【问题讨论】:
-
你在哪里调用 Collection?
-
@MarcusH...在中继器的 ObjectDataSource 中。
-
LinkButton1_OnClick调用发生在回发事件中,其中IsPostBack == true,因此您的列表实际上并未在回发事件中填充。 -
@VitorRigoni 请告诉我 ASP.NET Webforms 是否是无状态的?我问了 4-5 个人这个问题,每个人都给了我不同的答案。我在哪里可以找到这方面的参考资料?