我在c#代码中有一个函数,如下所示:
protected void UploadFile(Object s, EventArgs e)
{
blah blah blah
}
此功能会将文件上传到服务器。
我打电话给这样的功能:
<asp:Button ID="uploadButton" runat="server" Text="Upload!" OnClick="UploadFile"/>
我想将另一个参数传递给该函数,它将是该文件的名称。
但是我试图在UploadFile
添加它并且它不起作用,我该怎么办呢?感谢。
答案 0 :(得分:4)
这似乎很奇怪,因为您不需要将文件名发送到UploadFile
函数。您可以在UploadFile
函数本身使用文件名。
protected void UploadFile(Object s, EventArgs e)
{
// var file = ......
}
另一方面,如果你从另一个控件获得文件名,你可以在UploadFile
函数中从这个控件中获取文件名。
protected void UploadFile(Object s, EventArgs e)
{
var file = textboxX.Text;
}
答案 1 :(得分:1)
这是事件附加到您的Button
。您不应该像方法一样调用事件,而是可以将方法逻辑提取到单独的方法,然后使用您的参数调用该方法。就访问FileName
而言,您可以从文件文本框中访问它(可能您正在使用它)
protected void UploadFile(Object s, EventArgs e)
{
UploadFileMethod(yourFileTextBox.Text);
}
private void UploadFileMethod(string FileName)
{
//upload logic
}
并从其他地方调用它。
UploadFileMethod("NewFileName");
答案 2 :(得分: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"));