问题描述:

  项目环境为,.Net Mvc5+EF6……前端框架使用的是EasyUI v1.4.4。
  在视图页面中,使用form的submit方法提交表单数据时,如果是使用IE的话,请求成功后IE会提示下载内容,关于这个下载内容,则是由于IE默认的Content-Type为text/html,而我们喜欢用的Google浏览器默认的Content-Type为application/json。
 
解决办法:
  那么根据以上的问题描述,我们可以在返回数据之前设置返回的Content-Type为text/html即可。
 
解决代码:
  我们可以自定义一个JsonResult方法:
 
  1. /// <summary>
  2. /// 自定义JsonResult,
  3. /// </summary>
  4. /// <param name="data">数据</param>
  5. /// <param name="behavior">行为</param>
  6. /// <returns>JsonReuslt</returns>
  7. protected JsonResult JsonSubmit(object data, JsonRequestBehavior behavior = JsonRequestBehavior.AllowGet)
  8. {
  9. return new JsonResultOverride
  10. {
  11. Data = data,
  12. ContentType = "text/html",
  13. //ContentEncoding = contentEncoding,
  14. JsonRequestBehavior = behavior,
  15. FormateStr = "yyyy-MM-dd HH:mm:ss"
  16. };
  17. }

附JsonResultOverride类:

  1. /*****************************************************************************************************
  2. * 本代码版权归Quber所有,All Rights Reserved (C) 2015-2088
  3. * 联系人邮箱:qubernet@163.com
  4. *****************************************************************************************************
  5. * 命名空间:QUBER.Web.App_Common.Mvc
  6. * 类名称:JsonResultOverride
  7. * 创建时间:2015-11-25 15:53:04
  8. * 创建人:Quber
  9. * 创建说明:重写MVC的JsonResult
  10. *****************************************************************************************************
  11. * 修改人:
  12. * 修改时间:
  13. * 修改说明:
  14. *****************************************************************************************************/
  15. using System;
  16. using System.IO;
  17. using System.Web.Mvc;
  18. using Newtonsoft.Json;
  19. using Newtonsoft.Json.Converters;
  20.  
  21. namespace QUBER.Web.App_Common.Mvc
  22. {
  23. /// <summary>
  24. /// 重写MVC的JsonResult
  25. /// </summary>
  26. public class JsonResultOverride : JsonResult
  27. {
  28. #region 属性
  29. /// <summary>
  30. /// 格式化字符串
  31. /// </summary>
  32. public string FormateStr { get; set; }
  33.  
  34. /// <summary>
  35. /// Newtonsoft.Json序列化配置
  36. /// </summary>
  37. public JsonSerializerSettings Settings { get; private set; }
  38. #endregion
  39.  
  40. #region 构造
  41. /// <summary>
  42. /// 构造方法
  43. /// </summary>
  44. public JsonResultOverride()
  45. {
  46. Settings = new JsonSerializerSettings
  47. {
  48. //解决.Net MVC EntityFramework Json 序列化循环引用问题
  49. ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
  50. };
  51. //添加默认时间转换格式
  52. //Settings.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
  53. }
  54. #endregion
  55.  
  56. #region 重写
  57. /// <summary>
  58. /// 重写执行视图
  59. /// </summary>
  60. /// <param name="context">上下文</param>
  61. public override void ExecuteResult(ControllerContext context)
  62. {
  63. if (context == null) { throw new ArgumentNullException("context"); }
  64. if (JsonRequestBehavior == JsonRequestBehavior.DenyGet && string.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase)) { throw new InvalidOperationException("JSON GET is not allowed"); }
  65. var response = context.HttpContext.Response;
  66. response.ContentType = string.IsNullOrEmpty(ContentType) ? "application/json" : ContentType;
  67. if (ContentEncoding != null) { response.ContentEncoding = ContentEncoding; }
  68. if (Data == null) { return; }
  69. var scriptSerializer = JsonSerializer.Create(Settings);
  70. scriptSerializer.Converters.Add(new IsoDateTimeConverter { DateTimeFormat = FormateStr });
  71. using (var sw = new StringWriter())
  72. {
  73. scriptSerializer.Serialize(sw, Data);
  74. response.Write(sw.ToString());
  75. }
  76. }
  77. #endregion
  78.  
  79. #region 方法
  80.  
  81. #endregion
  82. }
  83. }

EasyUI form ajax submit到MVC后,在IE下提示下载内容的解决办法的更多相关文章

  1. 【SpringMVC】【EasyUI】关于使用EasyUIForm上传文件,返回JsonIE提示下载文件的解决办法!

    先说一下环境 EasyUI+SpringMVC+MyBatis 因为按正常手段,无法使用Ajax来提交一个包含文件的表单,故想到利用EasyUI的Form来提交,EasyUI的form封装了一套伪Aj ...

  2. STM32使用cube生成的程序后在keil5编译后首次SWD可以下载再次下载不行的解决办法。

    使用cube配置导出工程在keil5编译后首次SWD下载可以再次下载不行的解决办法. 1原因: cube使用的是HAL库,初始化语句里面禁用了调试功能. 在stm32f1xx_hal_msp.c中 _ ...

  3. SnagIt截图后无法在编辑器打开,不显示截图内容的解决办法(转)

    方法1: 用SnagIt截图后,弹出的编辑器里不显示刚才截图的内容,解决办法如下: 完全退出Snagit和编辑器,删除以下文件夹: Win7用户 C:\Users\Administrator\AppD ...

  4. ubuntu网络重启后或主机重启后,/etc/resolv.conf恢复原样的解决办法

    ubuntu网络重启后或主机重启后,/etc/resolv.conf恢复原样的解决办法 /etc/resolv.conf中设置dns之后每次重启该文件会被覆盖,针对这种情况找了一些个解决方法 防止/e ...

  5. 关于使用Ajax请求json数据,@RequestMapping返回中文乱码的几种解决办法

    一.问题描述: 使用ajax请求json数据的时候,无论如何返回的响应编码都是ISO-8859-1类型,因为统一都是utf-8编码,导致出现返回结果中文乱码情况. $.ajax({ type:&quo ...

  6. jquery获取不了ajax动态添加的内容的解决办法

    在HTML页面的一个button <div class="ajaxClick"> <button>内容</button> </div> ...

  7. wamp中修改后mysq数据库l闪退无法登陆解决办法

    WampServer安装后密码是空的,   修改一般有三种方式:   一是通过phpMyAdmin直接修改:   二是使用WAMP的MySql控制台修改.     三是重置密码    第一种:   1 ...

  8. Docker进入容器后使用ifconfig等命令“command not found”解决办法

      当进入一个容器后,使用ifconfig.ip addr等命令时,出现如下“command not found”:       解决办法:   yum update yum -y install n ...

  9. php安装扩展模块后,重启不生效的原因及解决办法

    在lnmp运维环境中,我们经常会碰到有些php依赖的扩展模块没有安装,这就需要后续添加这些扩展模块.在扩展被安装配置后,往往会发现php-fpm服务重启后,这些扩展并没有真正加载进去!下面就以一个示例 ...

随机推荐

  1. SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】

    一.添加一个新的FluorineFx的服务类项目OnLineService,删除原有的Sample.cs,并添加一个用户类定义与一个ApplicationAdpater类:如下: /*-- User. ...

  2. TP复习4

    <script> window.onload=function(){ if(<{$data.sex}>==0){ document.getElementsByName('sex ...

  3. MySql5.5忘记root密码的解决方法

    试了很多方法,下面这种方法是确保可以成功的,呵呵.转载自:http://hi.baidu.com/bjben/item/722bb50b27baf1dcdde5b097. 申明:本文章应该属于转载,但 ...

  4. linux上nagios安装完整版

    监控server端的安装部署一.apache的安装下载httpd-2.2.15.tar.gz gunzip httpd-2.2.15.tar.gztar xvf httpd-2.2.15.tarcd ...

  5. cocos2d-html5 笔记3: Node

    Cocos2d采用类似于Dom tree的那种形式来各个部分组织起来.最基本的基类是Node吧, Node Node 作为基类,函数很多,我觉得可以分为如下几类,树相关的函数, 一些公共的比较实用的函 ...

  6. Spring SqlRowSet example--转载

    原文地址:http://www.roseindia.net/tutorial/spring/spring3/jdbc/sqlrowset.html The 'SqlRowSet' is used to ...

  7. Android设置窗口、控件透明度

    设置透明效果的方法如下: 1.在布局文中设置透明效果 android:background="@android:color/transparent" (通过android自带颜色设 ...

  8. kafka java客户端编程

    kafka_2.10-0.8.1.1 maven <dependencies> <dependency> <groupId>org.apache.kafka< ...

  9. C#中的DataSet、string、DataTable、对象转换成Json的实现代码

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...

  10. jquery学习笔记2

    1.点击时文字消失,失去焦点时文字再出现 <input type="text" value="郭强" onfocus="if(value=='郭 ...