【发布时间】:2015-12-05 08:18:33
【问题描述】:
我有一个带有 <input type='file'> 元素的 aspx 页面。我想使用 C# 来保存通过这些控件上传的文件。我见过某些解决方案(如this one),我可以在On_Load 中使用。问题是我的input 控件将使用 JS 动态创建,并且我不希望每次上传图像时都回发。
C# 中是否有与 JS 的 .on() 方法等效的方法,以便我可以将处理程序附加到未来的控件?
编辑:按照@Oceans 的建议,我在input 控件中添加了一个onchange 事件处理程序:
<input type="file" onchange="saveFile" runat="server">
我的.cs 后面有一个saveFile 处理程序:
protected void saveFile(object sender, EventArgs e)
{
var imagesDir = Server.MapPath("Images/");
var uploader = sender as FileUpload;
uploader.PostedFile.SaveAs(imagesDir + uploader.PostedFile.FileName);
}
当我通过input 控制选择文件时,函数saveFile 不会运行。我用onchange="alert('hi')" 替换了onchange="saveFile" 以检查事件是否被触发,所以我显然遗漏了一些东西......可能与postback 和.asp 页面循环有关?
【问题讨论】:
-
确保输入是表单的一部分。你也可以通过这种方式触发 post 方法。
标签: javascript c# asp.net save