Jquery ASP.NET MVC和AjaxFileUpload

Jquery ASP.NET MVC和AjaxFileUpload,jquery,asp.net-mvc,file-upload,Jquery,Asp.net Mvc,File Upload,好吧,这让我快发疯了。我一直在想这个问题。我想使用执行异步上载。我让它将文件发布到我的控制器上,但是,当我试图从中返回JsonResult时,会出现一个“将文件另存为”对话框。我已经尝试了所有方法来解决这个问题,结果要么出现了错误,要么出现了“另存为”对话框。我假设它与文件发布时传递的内容类型有关。如果有人能帮忙,我将不胜感激。提前谢谢 如果您查看那里的代码,它实际上是在创建一个新表单和iframe,然后将表单发布到iframe。响应被写回iframe,然后代码拾取并返回iframe。我假设如果

好吧,这让我快发疯了。我一直在想这个问题。我想使用执行异步上载。我让它将文件发布到我的控制器上,但是,当我试图从中返回JsonResult时,会出现一个“将文件另存为”对话框。我已经尝试了所有方法来解决这个问题,结果要么出现了错误,要么出现了“另存为”对话框。我假设它与文件发布时传递的内容类型有关。如果有人能帮忙,我将不胜感激。提前谢谢

如果您查看那里的代码,它实际上是在创建一个新表单和iframe,然后将表单发布到iframe。响应被写回iframe,然后代码拾取并返回iframe。我假设如果您直接在浏览器中加载JsonResult,也会导致相同的下载框弹出。检查与JsonResult一起返回的标题,看看为什么作为页面加载时它会认为是下载。可能您需要将内容类型设置为text/plain或删除内容处置标题。

如果您查看那里的代码,它实际上是在创建新表单和iframe,然后将表单发布到iframe。响应被写回iframe,然后代码拾取并返回iframe。我假设如果您直接在浏览器中加载JsonResult,也会导致相同的下载框弹出。检查与JsonResult一起返回的标题,看看为什么作为页面加载时它会认为是下载。可能您需要将内容类型设置为text/plain或删除内容处置标题。

我遇到了同样的问题,我用

 public ContentResult UploadFile(FormCollection form, ...


  return Content("{success: false, ErrorMsg: 'someerror'}");

我也有同样的问题,我用同样的方法解决了它

 public ContentResult UploadFile(FormCollection form, ...


  return Content("{success: false, ErrorMsg: 'someerror'}");

在您的控制器中,仅包含如下“text/x-json”:

 public JsonResult UploadFile(FormCollection form, ...


  return Json("{id: xxxx, text: 'bla bla bla'}", "text/x-json");

在您的控制器中,仅包含如下“text/x-json”:

 public JsonResult UploadFile(FormCollection form, ...


  return Json("{id: xxxx, text: 'bla bla bla'}", "text/x-json");