ajax从javascript传参至asp.net,接收不到变量

钱小伟 2012-10-13 04:23:15

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="location.aspx.cs" Inherits="WebRole1.location" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else {
alert("your browser doesn't support AJAX");
}
}
function startRequest(url){
createXMLHttpRequest();
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange =callBack ;
xmlHttp.send(null);
}
function callBack() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var res = xmlHttp.responseText;
window.alert(res);
} else {
window.alert("error");
}
}
}
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(getPostion);
}
}
function getPostion(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var url = "location.aspx?lat=" + lat + "&lon=" + lon;
startRequest(url);
}
</script>

<asp:TextBox ID="text" runat="server" CssClass="text" MaxLength="100" Columns="40" TextMode="MultiLine"></asp:TextBox>
<asp:Button ID="textSubmit" runat="server" CssClass="textSubmit" Text="submit" OnClientClick="getLocation()" OnClick="Post"/>

<hr />
</asp:Content>

[code=C#]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebRole1
{
public partial class location : System.Web.UI.Page
{
protected void Post(object sender, EventArgs e)
{
Response.Write("<script>alert(" + Request.QueryString["lat"] + "); </script>");
}
}
}



alert出来的值一直是undifined,求解啊!~ 在线等


[/code]
...全文
193 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
现在我改用cookie了、数据库也连好都没问题、总之还是谢谢你了!

[Quote=引用 25 楼 的回复:]

一般浏览器不支持
[/Quote]
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
一般浏览器不支持
钱小伟 2012-10-13
  • 打赏
  • 举报
回复

谢啦!
不过我不知道为什么我用html5那个接口得到的坐标无论如何alert都是undefined。。。

[Quote=引用 23 楼 的回复:]

你这么简单的需求你写这么多js干吗
<script>
var xx = "aaa";//js变量值
funtion getLocation()
{
document.forms[0].lat.value=xx
}
</script>

<input type=hidden name=lat>
<asp:TextBox ID="text" runat="server" CssC……
[/Quote]
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
你这么简单的需求你写这么多js干吗
<script>
var xx = "aaa";//js变量值
funtion getLocation()
{
document.forms[0].lat.value=xx
}
</script>

<input type=hidden name=lat>
<asp:TextBox ID="text" runat="server" CssClass="text" MaxLength="100" Columns="40" TextMode="MultiLine"></asp:TextBox>
<asp:Button ID="textSubmit" runat="server" CssClass="textSubmit" Text="submit" OnClientClick="getLocation()" OnClick="Post"/>


protected void Post(object sender, EventArgs e)
{
Response.Write("<script>alert(" + Request.Form["lat"] + "); </script>");
}
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
我回来了、其实我的问题很简单就是怎么把javascript里的值传到后台里面……

[Quote=引用 11 楼 的回复:]

所有的东西都可以通过ajax'实现了,你为何还要加Post啊
[/Quote]
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
好、回头我再看看、

[Quote=引用 20 楼 的回复:]

引用 18 楼 的回复:

http://topic.csdn.net/u/20110110/10/918ef505-592e-4fba-b1d9-dfe9cc37f1e5.html

我是参考了这个写的、
他貌似成功了……

引用 14 楼 的回复:

但是,你即使执行了Post
也是得不到
Request.QueryString["lat"]

因为你Post的……
[/Quote]
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 的回复:]

http://topic.csdn.net/u/20110110/10/918ef505-592e-4fba-b1d9-dfe9cc37f1e5.html

我是参考了这个写的、
他貌似成功了……

引用 14 楼 的回复:

但是,你即使执行了Post
也是得不到
Request.QueryString["lat"]

因为你Post的Url里面没有lat
[/Quote]
你可以去效仿啊

做东西,要搞清楚基本的原理,才能快速实现功能,而且不出错,不耽误时间
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
你的浏览器地址是
http://xxxx/xx.aspx?lat=xxx
才能使用
Request.QueryString["lat"]
得到值,否则就是不能的

你看你的浏览器地址栏里面有这个吗
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20110110/10/918ef505-592e-4fba-b1d9-dfe9cc37f1e5.html

我是参考了这个写的、
他貌似成功了……

[Quote=引用 14 楼 的回复:]

但是,你即使执行了Post
也是得不到
Request.QueryString["lat"]

因为你Post的Url里面没有lat
[/Quote]
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
上面的都已经说清楚了

14楼
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
什么意思?

[Quote=引用 14 楼 的回复:]

但是,你即使执行了Post
也是得不到
Request.QueryString["lat"]

因为你Post的Url里面没有lat
[/Quote]
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
还是undefined……

[Quote=引用 13 楼 的回复:]

你这样啊a


<asp:Button ID="textSubmit" runat="server" CssClass="textSubmit" Text="submit" OnClientClick="getLocation();return false;"/>
<asp:Button ID="Button1" runat="server" Style="display:none" T……
[/Quote]
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
但是,你即使执行了Post
也是得不到
Request.QueryString["lat"]

因为你Post的Url里面没有lat
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
你这样啊a


<asp:Button ID="textSubmit" runat="server" CssClass="textSubmit" Text="submit" OnClientClick="getLocation();return false;"/>
<asp:Button ID="Button1" runat="server" Style="display:none" Text="" OnClick="Post" />


function callBack() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var res = xmlHttp.responseText;
window.alert(res);
document.getElementById("<%=Button1.ClientID%>").click();
} else {
window.alert("error");
}
}
}
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
具体该怎么弄呢?

[Quote=引用 10 楼 的回复:]

引用 8 楼 的回复:

额我可能误解你的意思了、
那我要先执行js代码再返回后台如何操作呢??

引用 6 楼 的回复:

OnClientClick="getLocation()" OnClick="Post"

这2个你必须选择一个,不能同时加


在这里操作

function callBack() {
//提交到服务器
}
[/Quote]
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
所有的东西都可以通过ajax'实现了,你为何还要加Post啊
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

额我可能误解你的意思了、
那我要先执行js代码再返回后台如何操作呢??

引用 6 楼 的回复:

OnClientClick="getLocation()" OnClick="Post"

这2个你必须选择一个,不能同时加
[/Quote]

在这里操作

function callBack() {
//提交到服务器
}
孟子E章 2012-10-13
  • 打赏
  • 举报
回复
不行的,因为Post是先提交了,页面都没有了,你执行什么啊
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
额我可能误解你的意思了、
那我要先执行js代码再返回后台如何操作呢??

[Quote=引用 6 楼 的回复:]

OnClientClick="getLocation()" OnClick="Post"

这2个你必须选择一个,不能同时加
[/Quote]
钱小伟 2012-10-13
  • 打赏
  • 举报
回复
我测试过的、我这么写、我在客户端代码里alert、所有的变量都是有值的且没有问题、
而且我也查过,这么写的话是先onclientclick执行,再只想onclick

[Quote=引用 5 楼 的回复:]

你要搞清楚
1,你执行OnClick,客户端的代码就不会执行了

2,你的lat参数是在js里面传递的,protected void Post(object sender, EventArgs e)里面是不能得到的
[/Quote]
加载更多回复(6)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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