2 g420607387 G420607387 于 2015.05.26 11:05 提问

关于ajax调用后控制器方法问题!
 $("#Sea").click(function(){
            var Search = $("#Search").val();
            alert(Search);
            $.ajax({
                type: "get",
                url: "@SiteConfig.ProductSite/ProductList.aspx",
                jsonpCallback: "__ProductList__", //回调方法
                dataType: "json",                        //跨域调用数据协议
                data: { Sear: Search },   //自定义参数名,值
                });
            })
  public ActionResult ProductList(string catagoryId, int pageNo, ProductFilterModel filterModel, string Sear)
        {
            catagoryId = "001.001";
            pageNo = 1;
            Response.Cache.SetOmitVaryStar(true);           
            var pager = new PagerModel(pageNo, 12);

            int MemberType=2;
            if (MemberInfo !=null  && (MemberInfo.MemberType) != 0 )
            {
                MemberType = MemberInfo.MemberType;
            }
            var dt = new ProdSkuProductSystem().SelectProdSkuProductByOptionValueIds(catagoryId, filterModel.ToList(),MemberType,Sear,pager); //筛选属性查询

通过前台AJax 传输一个Search参数过来, 用debugger能运行下去,但是没有调用成功,值没有传到后台,URL地址放到浏览器里面能直接运行,没明白到底哪里出问题了,运行不了!

4个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.05.26 11:06
 dataType: "json", 
 是
 dataType: "jsonp", 吧
G420607387
G420607387 回复danielinbiti: 我自己重写一个测试了下,能传过来参数,但是这个却不行,我就搞不懂啥情况了
2 年多之前 回复
G420607387
G420607387 回复danielinbiti: 这种写法,没做过,不知道怎么弄啊,我太菜了
2 年多之前 回复
danielinbiti
danielinbiti 回复G420607387: 你可以定义字符试试,能不能收到,把data写死成json格式再试试,如果也行,那就是生成后的json格式问题了
2 年多之前 回复
G420607387
G420607387 按道理来说之前用的是 DATA应该能收到的,我这个AJAX 这里debugger都能获取到,但是就是传不过去
2 年多之前 回复
G420607387
G420607387 回复danielinbiti: 恩咯, 一直提示我为 null,我也不知道什么情况
2 年多之前 回复
danielinbiti
danielinbiti 回复G420607387: 改成jsonp后还接收不到参数?
2 年多之前 回复
danielinbiti
danielinbiti 回复G420607387: json应该也可以的。
2 年多之前 回复
G420607387
G420607387 回复danielinbiti: 这种写法方法里面是不是也要接收一下?怎么接收呢? 现在还是为空,值没有传过来
2 年多之前 回复
G420607387
G420607387 回复danielinbiti: Sear=Search&callback=? 这种传值用于 url 后面那种传值方式吗?
2 年多之前 回复
danielinbiti
danielinbiti 回复G420607387: "Sear=Search&callback=?"
2 年多之前 回复
G420607387
G420607387 他那边提示一直为空,但是我前段那alert 确实获取到了文本框里面的值
2 年多之前 回复
G420607387
G420607387 是的是的, 原来是这样,但是这样确实能够调用到这个方法 但是我前台的那个Search 的值没有传到后台去, 这是啥原因啊?
2 年多之前 回复
qq_26041081
qq_26041081   2015.05.26 11:32

你传的是json格式,但是{}里面不是键值对啊。见应该用“”括起来

G420607387
G420607387 恩, 我现在该用 jsonp了 前台能调用到后台那个方法了,但是传过去的Sear值为空null 这是个什么情况啊
2 年多之前 回复
qq_26041081
qq_26041081   2015.05.26 11:34

$.ajax({
type: "get",
url: "@SiteConfig.ProductSite/ProductList.aspx",
dataType: "json",

data: { "Sear": Search }, //自定义参数名,值
success:function(data){
alert("成功");
},
error:function(){
alert("失败");
}
});
})
试试这样行不行

G420607387
G420607387 这样验证一直提示失败, 也还是不行, 刚开始接触这个东西唉。
2 年多之前 回复
beacon_2011
beacon_2011   Rxr 2015.05.26 13:36

data: { Sear: Search }, 这不是json啊

G420607387
G420607387 已经改为 jsonp了 但是不行, 后台那个获取不到值
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片