【发布时间】:2020-08-24 19:21:08
【问题描述】:
您好,我正在尝试在不同的范围内引用变量,即以不同的方法。我通过使用 getter 和 setter 来执行此操作,但不同方法中的变量为 null。我在这里看到了一个相关的问题,但这也不起作用C# referencing a variable from another method。这是我的代码:
private string FileName { get; set; }
protected void btnUpload_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
FileName = FileUpload1.FileName.ToString();
string extension = Path.GetExtension(FileName);
FileName = FileName.Replace(extension, "");
if (extension.ToLower()==".pdf")
{
FileUpload1.SaveAs(Server.MapPath("~/Uploads/" + FileName));
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
string saveLocation = Server.MapPath("~/Downloads/" + FileName + ".doc");
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AppendHeader("content-disposition", "attachment;fileName" + Filename);
Response.WriteFile(saveLocation);
Response.End();
}
当我运行此程序时,FileName 将以 NULL 的形式出现。虽然它是一个属性和一个类变量。
另一个甚至基本上是在saveLocation 下载文件的逻辑。我可能会错过什么?
【问题讨论】:
-
每次点击都由页面的不同实例处理。您需要在 ViewState 或 Session 中保留该属性