非静态字段,方法或属性'masterpage.fileupload'需要对象引用

时间:2012-12-25 07:13:46

标签: c# asp.net .net file-upload asp.net-4.0

我使用静态方法将我的图片上传到项目文件夹中,但由于收到错误而无法执行此操作:

  

非静态字段,方法或的对象引用是必需的   property' inheritedclass.fileupload'

我的功能如下:

[WebMethod]
public static string FileUploadUsingJqueryNew(string nameofimage)
{
    string File_Name = nameofimage;       
    FileUploadID.SaveAs(Server.MapPath("~/UploadFile/" + File_Name));
    imgID.ImageUrl = "../UploadFile/" + File_Name;
    imgID.Visible = true;
    return nameofimage;
}

2 个答案:

答案 0 :(得分:2)

您使用页面上的WebControl FileUpload.SaveAs方法。您的网页是一个包含属性的对象,其中一个是您的FileUpload

您无法将控件的引用传递给静态方法。您只能使用非静态方法来使用FileUpload控件。

<强>更新
根据您使用[WebMethod]属性,我认为您正在尝试将您的文件传递给Web服务方法。这可以通过添加FileUpload处理程序来完成,该处理程序使用HttpPostedFile.InputStream将文件内容传递给[WebMethod] Stream

答案 1 :(得分:1)

  • FileName = nameofimage

您不能像这样定义FilenameFileName是一个属性。像这样使用String fileName = FileUpload1.FileName; 不要忘记逗号!

  • FileUpload.SaveAs()

你不能这样做。您可以在FileUpload控件中使用非静态方法。像这样使用;

FileUpload f = new FileUpload();
f.SaveAs();