我正在尝试将UploadFile函数移动到BasePage,以便我可以在许多aspx页面上重复使用它。我的原始代码如下:
upload.aspx.cs
public partial class upload : CodeBasePage
{
protected void uploadFile_Click(object sender, EventArgs e)
{
if (UploadImages.HasFiles)
{
try
{
foreach (HttpPostedFile uploadedFile in UploadImages.PostedFiles)
{
//Upload stuff;
}
...
upload.aspx
<asp:FileUpload runat="server" ID="UploadImages" />
<asp:Button runat="server" ID="uploadedFile" Text="Upload" OnClick="uploadFile_Click"/>
到目前为止一切顺利。代码工作正常。
现在我想将uploadFile_Click移动到BasePage(CodeBasePage),以便我可以在许多aspx页面上重复使用它。
我将以下内容移到了CodeBasePage并声明了变量:
CodeBasePage.cs
public Button uploadedFile;
public FileUpload UploadImages;
protected void uploadFile_Click(object sender, EventArgs e)
{
if (UploadImages.HasFiles)
{
try
{
foreach (HttpPostedFile uploadedFile in UploadImages.PostedFiles)
{
//Upload stuff;
}
...
但显然我做错了什么。当我单击aspx页面上的Upload按钮时,出现“对象引用未设置为对象实例”的错误。
Line 292: if (UploadImages.HasFiles)
任何建议都将不胜感激。我认为问题在于如何将上传变量从upload.aspx页面发送到CodeBasePage.cs。
答案 0 :(得分:0)
所以你错过了FileUpload
课程中的具体CodeBasePage
实例。
你有什么
public FileUpload UploadImages
仅供参考。您应该在构造函数中或稍后手动将其设置为具体实例。
对于upload.aspx
页面,您的具体实例是
<asp:FileUpload runat="server" ID="UploadImages" />