2

我在 c# 代码中有一个函数,如下所示:

protected void UploadFile(Object s, EventArgs e)
{
blah blah blah
}

这个函数会将文件上传到服务器。

我这样调用函数:

<asp:Button ID="uploadButton" runat="server" Text="Upload!" OnClick="UploadFile"/>

我想将另一个参数传递给函数,它将是文件的名称。

但我试图将它添加到它UploadFile并且它不起作用,我该怎么做?谢谢。

4

3 回答 3

4

这似乎很奇怪,因为您不需要向UploadFile函数发送文件名。您可以只在UploadFile函数本身中使用文件名。

protected void UploadFile(Object s, EventArgs e)
{
   // var file = ......
}

另一方面,如果您从另一个控件获取文件名,您可以在UploadFile函数中从该控件获取文件名。

protected void UploadFile(Object s, EventArgs e)
{
   var file = textboxX.Text;
}
于 2013-01-23T10:45:15.117 回答
1

那是附加到您的Button. 您不应该像方法一样调用事件,而是可以将方法逻辑提取到单独的方法中,然后使用您的参数调用该方法。就访问FileName而言,您可以从 File TextBox 访问它(可能您正在使用一个)

protected void UploadFile(Object s, EventArgs e)
{
UploadFileMethod(yourFileTextBox.Text);
}

private void UploadFileMethod(string FileName)
{
 //upload logic
}

并从其他地方调用它。

UploadFileMethod("NewFileName");
于 2013-01-23T10:49:50.753 回答
0

如果你想传递很多参数,你应该像这样实现你自己的类:

public class MyEventArgs : EventArgs
{
    public MyEventArgs(params object[] args)
    {
        Args = args;
    }

    public object[] Args { get; set; }
}

您的活动将采用以下形式:

public event EventHandler<MyEventArgs> MyEvent;

提出您的活动:

MyEvent(this, new MyEventArgs(1, "information"));
于 2013-01-23T10:49:58.610 回答