我正在为我的MVC3应用程序使用telerik文件上传控件。我正在使用其异步功能上传文件。 以下是我正在使用的代码。
@(Html.Telerik().Upload()
.Name("files")
.ShowFileList(true)
.Multiple(true)
.Async(
async => async
.Save("Save", "MyController")
.AutoUpload(false)
.Remove("Remove", "MyController")
)
)
[HttpPost]
public ActionResult Save(IEnumerable<HttpPostedFileBase> files)
{
foreach (var file in files)
{
// Some browsers send file names with full path. We only care about the file name.
var fileName = Path.GetFileName(file.FileName);
var destinationPath = Path.Combine(Server.MapPath("~/App_Data"), fileName);
file.SaveAs(destinationPath);
}
return Content("");
}
上面的代码将生成两个按钮即。 “选择”和“上传文件”。选择4个文件并按“上传文件”按钮后,telerik异步调用动作方法4次(这是不好的)。我想要的是该方法应该只调用一次,所有4个文件应该立即发送到方法(因为我接受文件列表)。
那么,我怎样才能在Html.Telerik()。Upload()控件?
中实现这一点另外,我将在我的Html.Telerik()。Window()中显示此控件,因此我需要将上传的数据发送到我的父页面。任何帮助如何做到这一点?
感谢。
答案 0 :(得分:0)
作为建议,如果您要将文件作为带有其他值的表单帖子的一部分进行处理,您可以考虑让文件异步上传。我这样做是通过使用隐藏的表单字段将ID与上传的文件相关联,并在onUpload(e)客户端事件的e.data参数中包含该值。这样,您可以在文件保存在临时位置时验证表单,并处理表单发布以及与您的ID关联的文件。
否则,如果你绝对想要同步,那么根据Telerik的文档,你可以毫无疑问地进行多重同步上传。
http://www.telerik.com/help/aspnet-mvc/telerik-ui-components-upload-synchronous-upload.html