问题描述
- 关于Ajax传参数到Action问题,获取不到参数,
-
$("#Sea").click(function(){ var Search = $("#Search").val(); alert(Search); $.ajax({ type: "get", url: "@SiteConfig.ProductSite/ProductList.aspx", jsonpCallback: "__ProductLists__", //回调方法 dataType: "jsonp", //跨域调用数据协议 data: { Sear: Search }, //自定义参数名,值 success: function (data) { alert("成功"); }, error: function () { alert("失败"); } }); })
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); //筛选属性查询
//public ActionResult ProductLists(string catagoryId, string Sear) //{ // return null; //}
前台通过Ajax传Sear参数到action中,发现传不过去,而我自己写了个测试的却能传过去,各位大神,这是什么情况啊?
解决方案
没引入文件
可参考
$.ajax({
type: "post",
url: "<%=basePath %>bproduct/bpgdel1.action?rand="+Math.random(),
data: {"ids":ckArray.join(",")},
dataType: "json",
success: function(data){
if(data.state){
reload();
}else{
alert(data.msg);
}
}
});
解决方案二:
alert的时候有值是吗?测一下把参数写到url后面呢?
解决方案三:
type: "get",
改成type: "post",
试一下;然后确认一下是没有传值过去还是根本没有进后台。
解决方案四:
自己用开发工具看下发送的ajax请求返回什么内容,是否报错了。filterModel你没有传递这个参数,但是调用了ToList方法报错了吧。
解决方案五:
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。