ExtJS中FormPanel设置FileUpload为true后,提交返回下载文件的解决
来源:互联网 发布:.sql注释 编辑:程序博客网 时间:2024/06/04 18:42
在ExtJS中,如果设置FormPanel的FileUpload为true后,在IE里,submit后就会变成以文件形式下载返回的Json字符串。在FireFox中就无法执行submit的success和failure的回调函数。
解决方法就是不要返回Json,返回Content。
即例如:
return Json(new{ name = "Tom", age = 18});return Content(new{ name = "Tom", age = 18}.SerializeToJson());使用下者,不要使用上者。
其中SerializeToJson的代码如下:
namespace System.Web.Script.Serialization{ /// <summary> /// 为启用 AFAX 的应用程序提供序列化和反序列化功能。 /// </summary> public static partial class JsonHelper { private static readonly JavaScriptSerializer _jss; static JsonHelper() { _jss = new JavaScriptSerializer(); } /// <summary> /// 将当前对象转换为 JSON 字符串。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <returns>序列化的 JSON 字符串。</returns> public static string SerializeToJson<T>(this T obj) { return _jss.Serialize(obj); } /// <summary> /// 将指定的 JSON 字符串转换为 T 类型的对象。 /// </summary> /// <typeparam name="T">所生成对象的类型。</typeparam> /// <param name="input">要进行反序列化的 JSON 字符串。</param> /// <returns>反序列化的对象。</returns> public static T Deserialize<T>(string input) { return _jss.Deserialize<T>(input); } }}项目中记得引用System.Web和System.Web.Extensions。
然后前台页面的代码中submit不处理success回调函数。
对failure作如下处理:
failure: function(form, action) { try { /* * 若转换对象过程中出现null,则是网络原因导致访问失败,在catch中处理 * 返回的文本会在前后分别添加"<PRE>"和"</PRE>",用replace替换掉(这里偷懒一下,正确的方式应该用substring) * 接下来json字符串就可以转换回对象 */ var returnObj = Ext.decode(action.response.responseText.replace('<PRE>', '').replace('</PRE>', '')); } catch(e) { // 网络原因访问失败的情况 }}
0 0
- ExtJS中FormPanel设置FileUpload为true后,提交返回下载文件的解决
- ExtJs 4.x 学习小记:解决FormPanel的submit提示下载文件
- ExtJs 中 FormPanel 的数据加载和提交
- ExtJs 中 FormPanel 的数据加载和提交
- Extjs中上传文件后返回的json内容是文件下载
- ExtJs 中float设置为true后,默认有4px边距问题
- ExtJs 中float设置为true后,默认有4px边距问题
- extjs 中formPanel提交到action后返回json数据到ext中,但是ext页面不进入sucess也不进入failure
- ExtJS filefield设置disabled为true后按钮不灰显的解决办法
- ext JS Ext.form.FormPanel 如何显示提交后服务器返回的错误信息?
- extjs设置为disable后表单无法提交参数到后台的问题
- extjs设置表单元素为disable后表单无法提交参数到后台的问题
- Ext的FormPanel进行导入时,后台返回的success字段为true,可是总是走入Failure分支
- ExtJS中FormPanel实现数据加载和提交
- ExtJS中FormPanel实现数据加载和提交
- ExtJS中FormPanel实现数据加载和提交(转)
- ExtJS中FormPanel实现数据加载和提交
- [Extjs] FormPanel 中button的disabled控制
- CMake完整版入门教程
- oracle
- [DP动归]-POJ-2479-最大两段子串和
- POJ1797--Heavy Transportation
- 解决 Tomcat Server in Eclipse unable to start within 45 seconds 不能启动的问题
- ExtJS中FormPanel设置FileUpload为true后,提交返回下载文件的解决
- 广州.Net培训哪里好?
- stm32利用SysTick实现精确定时
- Nginx Location配置总结
- 传智博客光盘申领
- VLC 1.1.1播放器发布 完善A卡硬件加速
- 日常笔记(总是有些一闪而过的东西,记在好了)
- Qt 不能编译成Release或Debug
- mysql与字符串国际化