[英]Not getting value in Viewstate in asp.net using C#?
我正在使用asyncfileupload控件上传文件,我在这样的视图状态中采用路径:
protected void ProcessUpload(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
string name = System.IO.Path.GetFileName(e.FileName);
string dir = Server.MapPath("upload_eng/");
string path = Path.Combine(dir, name);
ViewState["path"] = path;
engcertfupld.SaveAs(path);
}
现在当我试图在buttonclick事件中保存该路径时,我没有得到viewstate的值:
protected void btnUpdate_Click(object sender, EventArgs e)
{
string filepath = ViewState["path"].ToString(); // GETTING NULL in filepath
}
在这个文件路径中我得到null实际上我得到错误NULL REFERENCE EXCEPTION
我现在能做什么?
将Path值放在Session对象而不是ViewState中,如下所示:
protected void ProcessUpload(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
....
string path = Path.Combine(dir, name);
Session["path"] = path;
}
然后在按钮单击:
protected void btnUpdate_Click(object sender, EventArgs e)
{
if (Session["path"] != null)
{
string filepath = (string) Session["path"];
}
}
我猜上传过程不是“真正的”回发,因此ViewState不会刷新客户端,并且在点击btnUpdate_Click时不会包含路径
您应该做的是使用OnClientUploadComplete客户端事件来检索上传的文件名,并将其存储在将在btnUpdate_Click上发布到服务器上的HiddenField中。
这是一个完整的示例,其中上传的文件名用于显示上传的图像而不回发:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.