小白求助,c#通过如何ajax传递参数到后台

w182183 2019-04-08 06:51:57
如题,用ajax连接后台,前台的参数一直传不到后台,请大佬们帮忙分析一下是哪里出现了问题;
前台ajax代码,这里的alter()都能执行成功

后台cs代码
...全文
527 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
葵宇科技 2019-04-25
  • 打赏
  • 举报
回复
为了你的奇葩问题,专门试了一下,页面ajax请求自身页面
目测可以取得数据
<script>
$.ajax({
type: "post",
url: "test.aspx",
async: "false",
data: { "user": "123123" },
success:function(data){
alert(data);
}
});
</script>

if (Request.Form["user"]!=null)
{
string dd = Request.Form["user"].ToString();
Response.Write(dd);
}


这玩意真的是你想要的东西?
葵宇科技 2019-04-25
  • 打赏
  • 举报
回复
if (IsPostBack)
{
string dd = Request.Form["user"].ToString();
}
这样试试吧,应该没问题。
hztltgg 2019-04-25
  • 打赏
  • 举报
回复
你要是新学,用ajax了,应该也前后端分离了吧,那还不如直接用mvc模式呢,参数获取返回值设置少了很多很多事情。
baidu_16910977 2019-04-25
  • 打赏
  • 举报
回复
baidu_16910977 2019-04-25
  • 打赏
  • 举报
回复
如果ajax请求少,只有一两个请求,又不想创建一个ashx来处理时,可以直接让ajax可以直接post到.cs代码中处理,但是有四处要特别注意不然会出错的,第一、post的数据一定是json格式的字符串,字符串,字符串。第二、要设置contentType:"application/json; charset=utf-8"。第三、后台代码方法要加上[WebMethod]关键字。第四、返回json数据时,数据是放在d中的。建议测试通过后把ajax封装下,不然下次你还会出错的
  • 打赏
  • 举报
回复
自己是可以访问自己后台的。 但是通常没人这么写, 如果不想用 aspx后台, 就访问ashx, 或者2个页面之间传参数, A页面调用B页面的ASPX。 如果A 直接调用A后台, 在FORM里 写个POST 或者 GET 就可以了, 不用独立写 AJAX
w182183 2019-04-23
  • 打赏
  • 举报
回复
引用 15 楼 z_tianyu 的回复:
你的返回值有问题,不能直接返回js,你这样写等于说最后接收的是"<script>alert('传值成功')</script>"这个字符串,看请求是否成功不是你这样弄的
改成response.write(requset["userid"].tostring())?
w182183 2019-04-23
  • 打赏
  • 举报
回复
引用 14 楼 z_tianyu 的回复:
[quote=引用 13 楼 w182183 的回复:] [quote=引用 12 楼 z_tianyu 的回复:] 在Page_Load加个判断, if (!IsPostBack){ //你接收的代码就可以接收到值了 }
尝试了一下,还是不行[/quote] 看着这个写吧,我刚从项目里复制过来的 if (!IsPostBack) { if (!string.IsNullOrEmpty(Request["action"]) && !string.IsNullOrEmpty(Request["memberid"]) && !string.IsNullOrEmpty(Request["custsource"])) { try { Response.Write(LoginAndSiteToUrl(Convert.ToInt32(Request["memberid"]), Request["custsource"].ToString())); Response.End(); return; } catch (Exception) { } }}[/quote] 按照这个写,还是没有效果
z_tianyu 2019-04-23
  • 打赏
  • 举报
回复
你的返回值有问题,不能直接返回js,你这样写等于说最后接收的是"<script>alert('传值成功')</script>"这个字符串,看请求是否成功不是你这样弄的
z_tianyu 2019-04-23
  • 打赏
  • 举报
回复



引用 13 楼 w182183 的回复:
[quote=引用 12 楼 z_tianyu 的回复:]
在Page_Load加个判断, if (!IsPostBack){ //你接收的代码就可以接收到值了 }

尝试了一下,还是不行[/quote]
看着这个写吧,我刚从项目里复制过来的
if (!IsPostBack)
{

if (!string.IsNullOrEmpty(Request["action"]) && !string.IsNullOrEmpty(Request["memberid"]) && !string.IsNullOrEmpty(Request["custsource"]))
{
try
{

Response.Write(LoginAndSiteToUrl(Convert.ToInt32(Request["memberid"]), Request["custsource"].ToString()));
Response.End();
return;
}
catch (Exception) { }
}}
w182183 2019-04-23
  • 打赏
  • 举报
回复
引用 12 楼 z_tianyu 的回复:
在Page_Load加个判断, if (!IsPostBack){ //你接收的代码就可以接收到值了 }
尝试了一下,还是不行
z_tianyu 2019-04-23
  • 打赏
  • 举报
回复
在Page_Load加个判断, if (!IsPostBack){ //你接收的代码就可以接收到值了 }
w182183 2019-04-23
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
不能在Page_Load里面处理 因为ajax Post本身是非刷新式提交,并不会重新加载页面 你后台还是要弄一个api来处理这个请求(比如用ashx)
大佬,之前没有接触过ashx,看了别人的贴子写了一个,好像还是没有成功,请大佬帮忙分析一下 ashx代码 ajax代码
w182183 2019-04-23
  • 打赏
  • 举报
回复
引用 8 楼 以专业开发人员为伍 的回复:
[quote=引用 2 楼 w182183 的回复:] [quote=引用 1 楼 stherix 的回复:] 不能在Page_Load里面处理 因为ajax Post本身是非刷新式提交,并不会重新加载页面 你后台还是要弄一个api来处理这个请求(比如用ashx)
大佬,不能通过cs来写吗?我是看到网上好多都是直接在cs里进行后台处理ajax请求,写在cs上的[/quote] 每一套复杂的机制都有其自己的运行套路。但凡正规学 asp.net 的都应该始终(至少1、2年)围绕 asp.net 的页面生命周期的各种事件、各种接口、各种操作而入门。过去有的人写博客、对“页面生命周期”完全不懂却空谈“cs”这就害人了。 不同层级的 asp.net 对象有不同的机制,不同的生命周期适用方法。[/quote] 学到了。之前一直是用控件事件来写后台,第一次用ajax,还在看别人的贴子学习。
  • 打赏
  • 举报
回复
这里其实并不是 Request.Form[....] 能不能解析一些 post 数据的问题,而是 asp.net 的耗费巨大代价而创建的复杂页面对象的机制问题。创建巨大的代价仅仅为了完成 ashx 自定义封装 json 对象或者是 webapi 解析参数的一样的简单功能?这就好像是让你用火车当自行车使,这样的人教你 asp.net 一定是糊弄你一时的。
  • 打赏
  • 举报
回复
引用 2 楼 w182183 的回复:
[quote=引用 1 楼 stherix 的回复:] 不能在Page_Load里面处理 因为ajax Post本身是非刷新式提交,并不会重新加载页面 你后台还是要弄一个api来处理这个请求(比如用ashx)
大佬,不能通过cs来写吗?我是看到网上好多都是直接在cs里进行后台处理ajax请求,写在cs上的[/quote] 每一套复杂的机制都有其自己的运行套路。但凡正规学 asp.net 的都应该始终(至少1、2年)围绕 asp.net 的页面生命周期的各种事件、各种接口、各种操作而入门。过去有的人写博客、对“页面生命周期”完全不懂却空谈“cs”这就害人了。 不同层级的 asp.net 对象有不同的机制,不同的生命周期适用方法。
  • 打赏
  • 举报
回复
ajax 访问 ashx 就可以了。花巨大代价创建一个 Page 是谁教你的呢?
wilson1966 2019-04-09
  • 打赏
  • 举报
回复
https://blog.csdn.net/liuzhen917/article/details/8101444 参考一下
Z张天择 2019-04-08
  • 打赏
  • 举报
回复
这样写的Ajax,是传递不了参数的。建议写一个ashx 比如这样 $.ajax({ type:'post', url: 'Register.ashx', data: { XXX: XXX }, success: function(json){ //回调函数 }
stherix 2019-04-08
  • 打赏
  • 举报
回复
比如在cs文件里写一个 [WebMethod] string Register(参数){} 前台可以用 url+"/Register" 这个地址来post
加载更多回复(3)

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧