【问题标题】:Unable to post files using ajax post无法使用 ajax post 发布文件
【发布时间】:2012-12-16 01:37:54
【问题描述】:

我们使用 ASP.Net Mvc 4.0。

我的目标是保存一个包含普通输入字段和文件输入字段的表单。 我应该能够在发布时添加额外的数据。 我应该能够对 'Ajax Post's Success 执行一些操作。

我们使用 ajax post 来发布表单数据,就像我们可以完成上述 2 一样,但是无法将文件序列化和发布到服务器。

每当我们使用 ajax post 发布时,总是 Request.Files.Count == 0,当我签入控制器的 Post Action 时。

我使用的ajax帖子是:

函数 PostData(formId, eventSource, eventName, eventArgs, controlId) { var $dialogForm = $("#" + formId + "Form"); fdata = $dialogForm.serialize(); fdata = fdata + '&eventSource=' + eventSource + "&eventName=" + eventName + '&eventArgs=' + eventArgs; $.ajax({ 网址:$dialogForm.attr("action"), 类型:$dialogForm.attr("method"), 缓存:假, 数据:fdata, 成功:函数(结果){ 过程事件(结果); } }); }

请给我一个解决方案!

【问题讨论】:

标签: asp.net-mvc jquery


【解决方案1】:

当您使用 ajax 的概念时,您无法上传文件。但是有一些调整用于使用 ajax 上传文件和表单数据。每当在表单中遇到文件类型时,可以将表单数据连同文件一起复制到 iframe 并且可以提交 iframe,这让您感觉文件已与使用 ajax 的其他表单数据一起上传。

jquery 中有各种可用的插件可以为您简化这项任务。 我最喜欢的一种是 ajax 形式

http://malsup.com/jquery/form/#file-upload

你可以用这个..

【讨论】:

  • 感谢 Rajesh 的建议,但我必须在没有框架的情况下实施!
  • 它不是框架..它的 iframe 和那些是内部的..您只需要使用插件才能使其工作..一旦工作完成 iframe 被插件删除..技术上没有其他方式你可以在没有 iframe 的情况下使用 ajax 上传文件..如果我错了,请纠正我..谢谢..
  • 对不起,我说的是 iframe!
猜你喜欢
  • 2019-05-14
  • 2019-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
相关资源
最近更新 更多