博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EasyUI form ajax submit到MVC后,在IE下提示下载内容的解决办法
阅读量:6092 次
发布时间:2019-06-20

本文共 3835 字,大约阅读时间需要 12 分钟。

问题描述:

  项目环境为,.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 ///  2 /// 自定义JsonResult, 3 ///  4 /// 数据 5 /// 行为 6 /// 
JsonReuslt
7 protected JsonResult JsonSubmit(object data, JsonRequestBehavior behavior = JsonRequestBehavior.AllowGet) 8 { 9 return new JsonResultOverride10 {11 Data = data,12 ContentType = "text/html",13 //ContentEncoding = contentEncoding,14 JsonRequestBehavior = behavior,15 FormateStr = "yyyy-MM-dd HH:mm:ss"16 };17 }
View Code

附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的JsonResult10  *****************************************************************************************************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.Mvc22 {23     /// 24     /// 重写MVC的JsonResult25     /// 26     public class JsonResultOverride : JsonResult27     {28         #region 属性29         /// 30         /// 格式化字符串31         /// 32         public string FormateStr { get; set; }33  34         /// 35         /// Newtonsoft.Json序列化配置36         /// 37         public JsonSerializerSettings Settings { get; private set; }38         #endregion39  40         #region 构造41         /// 42         /// 构造方法43         /// 44         public JsonResultOverride()45         {46             Settings = new JsonSerializerSettings47             {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         #endregion55  56         #region 重写57         /// 58         /// 重写执行视图59         /// 60         /// 上下文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         #endregion78  79         #region 方法80  81         #endregion82     }83 }
View Code

 

转载于:https://www.cnblogs.com/qubernet/p/5088507.html

你可能感兴趣的文章
thrift之TTransport层的缓存传输类TBufferedTransport和缓冲基类TBufferBase
查看>>
Oracle数据库日期范围查询的两种实现方式
查看>>
PHP魔术变量和魔术方法
查看>>
张子强_百度百科
查看>>
Windows下命令行下启动ORACLE服务
查看>>
从网络得到数据--Arduino+以太网
查看>>
删除重复记录(Mysql,SqlServer,Sqlite)
查看>>
vb sendmessage 详解1
查看>>
aaalogo写入中文出错的解决方法
查看>>
常用的一些SQL语句整理,也许有你想要的。
查看>>
JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
用Hibernate Tools生成Hibernate Mapping映射文件
查看>>
php 过滤html标签的函数
查看>>
css斜线
查看>>
2013年第44周三可惡的中國聯通
查看>>
mysql导数据库用到的语句
查看>>