0

我正在使用 ASP.net 前端创建一个 C# 应用程序,但是我现在遇到了问题。我希望用户输入一些信息,这些信息一旦提交,将显示在页面上的列表框中,效果很好。但是,一旦我关闭页面,停止调试程序并再次运行它 - 信息仍然显示,但我希望它从空白开始。在这里,如果我认为导致问题的 ASPX 页面,这让我发疯。

public partial class CarBootSaleForm : System.Web.UI.Page, ISaleManagerUI
{
    private SaleList saleList; 

    protected void Page_Load(object sender, EventArgs e)
    {

        if (IsPostBack && Application["SaleList"] != null)
        {
            LoadData();
        }
        else
        {
            saleList = (SaleList)Application["SaleList"];
        }

        if (saleList != null)
        {
            UpdateListbox();
        }

    }

    private void UpdateListbox()
    {
        lstSales.Items.Clear();

        if (saleList != null)
        {
            for (int i = 0; i < saleList.Count(); i++)
            {
                lstSales.Items.Add(new ListItem(saleList.getSale(i).ToString()));
            }
        }
    }

    protected void btnAdd_Click(object sender, EventArgs e)
    {
        Application.Lock();
        Application["SaleList"] = saleList;
        Application.UnLock();

        Response.Redirect("AddSaleForm.aspx");
    }

}

忘记LoadData()页面内加载,因为它目前实际上没有加载任何内容:)

非常感谢任何帮助!

4

2 回答 2

1

除非您重新启动 Web 服务器,否则不会刷新存储在应用程序状态中的变量,因此如果您使用 IIS,则需要使用 iisreset 命令(在命令行上),或者您需要停止 ASP.NET Web 服务器(每次调试会话后使用托盘图标)。

于 2013-04-23T22:18:21.700 回答
0

如果不是回发,您可以添加 Session.Abandon(); 在 Page_load 的 else 块中。

杀死会话:

如何终止会话或会话 ID (ASP.NET/C#)

于 2013-04-23T22:03:09.317 回答