【非常不解】MVC中AJAX提交接收不到数据??

问题描述

页面提交过程:varjsonData=JSON.stringify({CurrentPage:page,SelectCategoryId:selectCategory,StartTime:startTime,EndTime:entTime});$.ajax({url:"/Home/SearchTrainingByAjax",data:jsonData,type:"POST",dataType:"json",contentType:"application/json",success:function(date){alert(123);}});

对应Controller中Acion方法为:[AcceptVerbs(HttpVerbs.Post)]publicJsonResultSearchTrainingByAjax(){returnJson(Request.InputStream);}

但是Request.InputStream总是空,是怎么回事啊?非常不解啊?

解决方案

本帖最后由 woshimaikou 于 2014-01-01 22:25:29 编辑
解决方案二:
HttpVerbs.Post$.ajax({type:"POST",....
解决方案三:
把这个jsonData换成{"UserName":"xxxxx"}试试
解决方案四:
换成text/xml试试
解决方案五:
F12
解决方案六:
楼上说的都不行啊?
解决方案七:
没有遇到这样问题的吗???
解决方案八:
感觉应该用一个对应的class对接收数据的[AcceptVerbs(HttpVerbs.Post)]publicJsonResultSearchTrainingByAjax(QueryModelquery){returnJson(data);}

publicclassQueryModel{//与json里面的数据字段相对应}

解决方案九:
引用7楼zhujiazhi的回复:

感觉应该用一个对应的class对接收数据的[AcceptVerbs(HttpVerbs.Post)]publicJsonResultSearchTrainingByAjax(QueryModelquery){returnJson(data);}

publicclassQueryModel{//与json里面的数据字段相对应}

这样也弄了没效果这个也是我发的。
解决方案十:
引用楼主woshimaikou的回复:

但是Request.InputStream总是空,是怎么回事啊?非常不解啊?

内容只能读取一遍,已经被你的所谓asp.netmvc程序读取走了,你还能再“继续”读出什么?
解决方案十一:
引用6楼woshimaikou的回复:

没有遇到这样问题的吗???

自己学会调试http消息,学会自己写一个web服务(例如ashx)来处理Context.Request.InputStream。循序渐进才能了解问题原因,不要“只会一个代码”。
解决方案十二:
看下这个帖子我的回复把position改成0就行了
解决方案十三:
困扰你几天的问题看了我回复的那个帖子就可以解决了
解决方案十四:
你最好还是搞懂你那种程序要收到CurrentPage、SelectCategoryId、StartTime、EndTime四个参数,该怎样写你的SearchTrainingByAjax方法。如果不去搞懂内部为什么会“丢失InputStream数据流”,你只是道听途说地记住了“Position=0”,那么就算是你走了弯路也不过是照抄来的弯路。
解决方案十五:
引用10楼sp1234的回复:

Quote: 引用6楼woshimaikou的回复:
没有遇到这样问题的吗???

自己学会调试http消息,学会自己写一个web服务(例如ashx)来处理Context.Request.InputStream。循序渐进才能了解问题原因,不要“只会一个代码”。

这个也早就试过了,么有效果的。谢谢你
解决方案:
引用9楼sp1234的回复:

Quote: 引用楼主woshimaikou的回复:
但是Request.InputStream总是空,是怎么回事啊?非常不解啊?

内容只能读取一遍,已经被你的所谓asp.netmvc程序读取走了,你还能再“继续”读出什么?

感谢您的回帖,知道您是大牛,呵呵但是我真的不知道antion里为什么无法获取InputStream,至于您说的已经被“所谓asp.netmvc程序读取走了”是什么意思呢。谢谢!希望得到您的帮助。
解决方案:
话说我也遇到过那时我做的是上传图片结果都收不到不知道怎么回事·吾也求解·
解决方案:
var_data={CurrentPage:page,SelectCategoryId:selectCategory,StartTime:startTime,EndTime:entTime};$.ajax({url:"/Home/SearchTrainingByAjax",data:_data,type:"POST",dataType:"json",contentType:"application/json",success:function(result){alert(result);}});

[AcceptVerbs(HttpVerbs.Post)]publicJsonResultSearchTrainingByAjax(intCurrentPage,intSelectCategoryId,DateTimeStartTime,DateTimeEndTime)//获取把查询参数封装成查询实体Class{returnJson(String.Format("{0}-{1}-{2]-{3}",CurrentPage,SelectCategoryId,StartTime,EndTime));}

解决方案:
引用16楼qq931121347的回复:

话说我也遇到过那时我做的是上传图片结果都收不到不知道怎么回事·吾也求解·

一般是因为Input标签没有写上name属性还有form标签没有加上enctype="multipart/form-data",才会导致
解决方案:
引用18楼tsgx_1989的回复:

Quote: 引用16楼qq931121347的回复:
话说我也遇到过那时我做的是上传图片结果都收不到不知道怎么回事·吾也求解·

一般是因为Input标签没有写上name属性还有form标签没有加上enctype="multipart/form-data",才会导致

都有了但是就是接收不到不知道怎么回事代码也没错后来换了个上传跳过了这个问题不过现在看到这个帖子还是想了解下

时间: 2024-09-20 06:20:24

【非常不解】MVC中AJAX提交接收不到数据??的相关文章

asp.net中mvc使用ajax提交参数的匹配问题解决探讨

本文为大家介绍下使用javaScript解决asp.net中mvc使用ajax提交参数的匹配问题,遇到类似情况的朋友可以参考下,希望对大家有所帮助   想到在asp.net的mvc中如果使用ajax向服务端传递参数时如果参数是一个类或者是个数组(或List集合)以及更复杂的对象时,服务端总是会发 生取不到值的情况,当然网上也有很多解决的例子,但都是在服务端想办法来解决的(比如将json转换为字符串,再在服务端反序列化为一个对象),为何不能 在客户端就把这个问题搞定. 其实问题没那么复杂,那是因为

Jquery中ajax提交表单几种方法(get、post两种方法)_AJAX相关

在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的方法.$get方式提交表单get() 方法通过远程HTTP ,下面我来介绍两个提交表单数据的方法. $get方式提交表单 get() 方法通过远程 HTTP GET 请求载入信息 格式 $(selector).get(url,data,success(response,status,xhr),dataType

Spring MVC中Ajax实现二级联动的简单实例_jquery

今天写项目遇到了二级联动,期间遇到点问题,写个博客记录一下. 后台Controller: @RequestMapping("/faultType") @ResponseBody public Map<String,Object> faultType(int id,HttpServletRequest request)throws IOException { String ReturnMessage = ""; //获取所有子类故障类型 List<F

Jquery中ajax提交表单几种方法(get、post两种方法)

在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的方法.$get方式提交表单get() 方法通过远程HTTP ,下面我来介绍两个提交表单数据的方法. $get方式提交表单 get() 方法通过远程 HTTP GET 请求载入信息 格式 $(selector).get(url,data,success(response,status,xhr),dataType

asp.net mvc中,ip怎么传入sql数据库库

问题描述 asp.net mvc中,ip怎么传入sql数据库库 asp.net mvc中,我在control中获取了ip地址,但是怎么传入sql数据库呢?新手,只知道怎么提交用户填写的表单里的数据... 解决方案 假设你用的是ef一类的框架,那么xxxDataEntites db = new xxxDataEntites();db.表.Add(new 实体 { ip = 你获得的ip });db.SaveChanges(); 解决方案二: ajax啊,你给他绑到用户点击的地方 解决方案三: 在数

asp.net中mvc使用ajax提交参数的匹配问题解决探讨_AJAX相关

想到在asp.net的mvc中如果使用ajax向服务端传递参数时如果参数是一个类或者是个数组(或List集合)以及更复杂的对象时,服务端总是会发生取不到值的情况,当然网上也有很多解决的例子,但都是在服务端想办法来解决的(比如将json转换为字符串,再在服务端反序列化为一个对象),为何不能在客户端就把这个问题搞定. 其实问题没那么复杂,那是因为在jquery提交Array的数据时,提交的时候始终会在名称后面加上"[]", 问题就出在这里.另外在服务端对数组和内嵌的js对象进行解析时,需要

浅析Asp.net MVC 中Ajax的使用_AJAX相关

一.使用System.Web.Mvc.Ajax 1.1 System.Web.Mvc.Ajax.BeginForm 1.2 System.Web.Mvc.Ajax.ActionLink 二.手工打造自己的"非介入式"Javascript" 一.使用System.Web.Mvc.Ajax   1.1 System.Web.Mvc.Ajax.BeginForm      第一步:用Ajax.BeginForm创建Form @using (Ajax.BeginForm( new A

IE中jquery.form中ajax提交没反应解决方法分享_jquery

花了三个钟头,反复查,发现,原来是改了处理页面的返回头信息. 加上了 application/x-javascript ,ie8就不干活了. 如果是text/html,就行,或者不指定也行. 算bug不?让我问候一下写这段代码的ie开发人员吧. ajax的头信息,编码看来都要注意哎. ajax提交表单数据的方式介绍 Url参数提交数 复制代码 代码如下: <script type ="text/javascript" src ="../js/jquery.js"

IE中jquery.form中ajax提交没反应解决办法

花了三个钟头,反复查,发现,原来是改了处理页面的返回头信息. 加上了 application/x-javascript ,ie8就不干活了. 如果是text/html,就行,或者不指定也行. 算bug不?让我问候一下写这段代码的ie开发人员吧. ajax的头信息,编码看来都要注意哎. ajax提交表单数据的方式介绍 Url参数提交数  代码如下 复制代码 <script type ="text/javascript" src ="../js/jquery.js"