【问题标题】:ASP.NET MVC and AjaxFileUploadASP.NET MVC 和 AjaxFileUpload
【发布时间】:2010-10-24 14:05:50
【问题描述】:
好吧,这让我发疯了。我一直在尝试永远解决这个问题。我想使用ajaxFileUpload 执行异步上传。我让它将文件发布到我的控制器就好了,但是,当我尝试从中返回 JsonResult 时,我得到一个“将文件另存为”对话框。我已经尝试了一切来解决这个问题,我得到一个错误或“另存为”对话框。我假设它与发布文件时传入的内容类型有关。如果有人能提供帮助,我将不胜感激。提前致谢!
【问题讨论】:
标签:
jquery
asp.net-mvc
file-upload
【解决方案1】:
我遇到了同样的问题,我解决了
public ContentResult UploadFile(FormCollection form, ...
return Content("{success: false, ErrorMsg: 'someerror'}");
【解决方案2】:
如果您查看那里的代码,它实际上是在创建一个新表单和 iframe,然后将表单发布到 iframe。响应被写回 iframe,然后代码将其拾取并返回。我假设如果您直接在浏览器中加载 JsonResult,它也会导致弹出相同的下载框。检查与 JsonResult 一起返回的标头,以了解为什么在作为页面加载时它认为是下载。也许您需要将 Content-Type 设置为 text/plain 或删除 Content-Disposition 标头。
【解决方案3】:
在你的控制器中只包含这样的“text/x-json”:
public JsonResult UploadFile(FormCollection form, ...
return Json("{id: xxxx, text: 'bla bla bla'}", "text/x-json");