我试图将通用列表存储在 View 状态支持的属性中,如下所示:
[Serializable]
public class UploadedFile
{
public string FileName { get; set; }
public Guid FileGuid { get; set; }
}
public List<UploadedFile> UploadedFiles
{
get
{
return (List<UploadedFile>) (ViewState["UploadedFiles"] ?? new List<UploadedFile>());
}
set
{
ViewState["UploadedFiles"] = value;
}
}
当我尝试将项目添加到列表中时,UploadedFiles.Count 保持为零:
var uploadedFile = new UploadedFile {FileName = args.FileName, FileGuid = args.FileGuid};
UploadedFiles.Add(uploadedFile); // UploadedFiles.Count == 0 here!
有人有什么想法吗?
最佳答案
当你创建初始列表时,你没有将它保存到 View 状态中,试试这个..
public List<UploadedFile> UploadedFiles
{
get
{
var list = (List<UploadedFile>) (ViewState["UploadedFiles"] ??
new List<UploadedFile>());
ViewState["UploadedFiles"] = list;
return list;
}
set
{
ViewState["UploadedFiles"] = value;
}
}
关于asp.net - ViewState 支持的属性不适用于 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609157/