C#-IE要下载JSON结果…MVC3
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-IE要下载JSON结果…MVC3,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1570字,纯文字阅读大概需要3分钟。
内容图文
![C#-IE要下载JSON结果…MVC3](/upload/InfoBanner/zyjiaocheng/693/03fd3294c42f4e9493f3c653699981be.jpg)
我的MVC3应用将文件从用户上传到我们的服务器.我返回一个JsonResult来显示任何错误,如果有的话:
[HttpPost]
public JsonResult SaveDocument(DocumentModel model, HttpPostedFileBase postedFile)
{
//my wonderful code
return Json(new { success = true, message="ok" });
}
这是我如何提交请求的方法:
var isSubmitting = false;
var addDocumentOptions = {
beforeSubmit: beforeAddDocumentSubmit, // pre-submit callback
success: afterDocumentSubmit // post-submit callback
};
$('#btnCreateDocument').click(function (e) {
e.preventDefault();
$('#divError').html('');
if (!isSubmitting) {
$('#createDocForm').submit();
}
});
上传完成后,此javascript函数将运行:
function afterDocumentSubmit(responseText, statusText, xhr, $form) {
if (responseText.success) {
//no errors
} else {
$('#divError').html('Error: ' + responseText.message);
}
}
在FF,Chrome等中,我的JavaScript代码运行良好,但在IE中,浏览器希望将Json结果下载为文本.我得到一个不应显示的下载/打开文件对话框.如何使IE浏览器不下载我的Json结果并表现得与其他浏览器类似?谢谢
解决方法:
我在Java上的Spring MVC中遇到了类似的问题.问题在于Spring将JSON结果的内容类型作为application / json返回,这似乎使IE想要下载它.您可以尝试将内容类型更改为文本/纯文本.在这种情况下,IE不会提示您下载文件.我怀疑类似的事情可能会在这里发生.
您可以尝试:
return Json(new { success = true, message = "ok" }, "text/plain");
针对您的新问题:问题是responseText只是一个字符串.您需要做的是将其转换为Javascript对象.您可以这样做:
var response = JSON.parse(responseText);
if(response.success) {
...
}
大多数浏览器都支持JSON.parse().如果您在使用不兼容的浏览器时遇到问题,则可以始终使用JSON Javascript Library.
内容总结
以上是互联网集市为您收集整理的C#-IE要下载JSON结果…MVC3全部内容,希望文章能够帮你解决C#-IE要下载JSON结果…MVC3所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。