Asp.net ViewState不适用于AjaxFileUpload
我正在AjaxFileUpload UploadComplete函数的ViewState中存储上载文件的名称,但在回发时无法在Page_Load函数中检索该名称。ViewState为空。 当我使用ViewState在一个简单的按钮单击函数中存储一些变量时,回发后的pageu加载中可以使用这些值 因此,问题在于AjaxFileUpload UploadComplete事件Asp.net ViewState不适用于AjaxFileUpload,asp.net,ajaxcontroltoolkit,Asp.net,Ajaxcontroltoolkit,我正在AjaxFileUpload UploadComplete函数的ViewState中存储上载文件的名称,但在回发时无法在Page_Load函数中检索该名称。ViewState为空。 当我使用ViewState在一个简单的按钮单击函数中存储一些变量时,回发后的pageu加载中可以使用这些值 因此,问题在于AjaxFileUpload UploadComplete事件 protected void Page_Load(object sender, EventArgs e) { if
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnParseDmp.Enabled = false;
btnParseDmp.CssClass = "btnParseDmpDisable";
lblTxtFile.Text = "";
lblWindbgTxtFile.Text = "";
btnTxt.Visible = false;
btnWindbgTxt.Visible = false;
lblOpt.Text = "";
lblStatus.Text = "";
fileListBox.Items.Clear();
m_fileName = "";
latestDir = null;
bParseClicked = false;
dirName = "";
FileName = "";
latestParsedFile = "";
fileListBox.Visible = false;
Response.Clear();
ViewState["m_fileName"] = null;
ViewState["latestDir"] = null;
ViewState["bParseClicked"] = false;
ViewState["dirName"] = null;
ViewState["latestParsedFile"] = null;
ViewState["FileName"] = null;
}
else
{
if (ViewState["FileName"] != null)
{
Console.WriteLine("Not null");
}
else
Console.WriteLine("Null");
m_fileName = (string)ViewState["m_fileName"];
latestDir = (DirectoryInfo)ViewState["latestDir"];
bParseClicked = (bool)ViewState["bParseClicked"];
dirName = (string)ViewState["dirName"];
FileName = (string)ViewState["FileName"];
latestParsedFile = (string)ViewState["latestParsedFile"];
}
}
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
Random rnd = new Random(DateTime.Now.Millisecond);
int num = rnd.Next(1, 2147483640);
dirName = System.Web.HttpRuntime.AppDomainAppPath + "Parsings\\" + num;
ViewState["dirName"] = dirName;
System.IO.Directory.CreateDirectory(dirName);
FileName = e.FileName;
ViewState["FileName"] = FileName;
FileInfo fz = new FileInfo(FileName);
string ext = fz.Extension;
ext = ext.ToLower();
if (ext.Contains("zip"))
{
AjaxFileUpload1.SaveAs(System.Web.HttpRuntime.AppDomainAppPath + "Temp" + "\\" + e.FileName);
}
else
{
AjaxFileUpload1.SaveAs(dirName + "\\" + e.FileName);
}
bParseClicked = false;
ViewState["bParseClicked"] = bParseClicked;
}
按照AjaxFileUpload的工作方式,您将无法获取viewstate。那么我还可以使用其他替代方法吗?因为我需要在回发中保留文件名。请尝试使用会话跟踪这些值。尽管这不是一个很好的方法,但我需要使用它来解决问题。我之前使用的是会话。将其替换为ViewState,因为如果在两个不同选项卡中同时打开同一页,则会话数据会发生冲突。