利用js取得html传递过来的url 参数,使asp.net获得,怎么实现

zhaboy 2006-11-01 11:46:11

下面代码中的 js 可以得到 url传递过来的参数,怎么给 _sheng呢?
public string _sheng;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Response.Write(" <script language='javascript'>");
Response.Write("function getparastr(strname){ var hrefstr,pos,parastr,para,tempstr;hrefstr = window.location.href;");
Response.Write("pos = hrefstr.indexOf(\"?\");");
Response.Write(" parastr = hrefstr.substring(pos+1);");
Response.Write("para = parastr.split(\"&\");");
Response.Write("tempstr='';");
Response.Write("for(i=0;i<para.length;i++){");
Response.Write(" tempstr = para[i];");
Response.Write("pos = tempstr.indexOf(\"=\");");
Response.Write("if(tempstr.substring(0,pos) == strname){");
Response.Write("return tempstr.substring(pos+1)};");
Response.Write("}");
Response.Write("return null;}");
Response.Write(this._sheng+="getparastr(\"name\");"); //这么写不行,不执行js
//怎么将getparastr(\"name\");的值给_sheng?
Response.Write("</script>");

}

}
...全文
452 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhaboy 2006-11-01
  • 打赏
  • 举报
回复
按照您的方法 QueryString 未定义
其实我只想弄明白一个问题,就是javascript跟asp.net的交互


比如:<script language="javascript">
var iii="4sdfs";

</script>
我在asp.net里定义一个 public string aaa;
我想让这个aaa=iii
foyuan 2006-11-01
  • 打赏
  • 举报
回复
哦 忘了说了

先调用QueryString.Initial();
这个方法可以在onload的时候调用 或者直接写在下面的位置
<body><script language='javascript'>QueryString.Initial();</script>
foyuan 2006-11-01
  • 打赏
  • 举报
回复
QueryString=
{
data :{},
Initial:function()
{
var aPairs, aTmp;
var queryString = new String(window.location.search);
queryString = queryString.substr(1, queryString.length); //remove "?"
aPairs = queryString.split("&");
for (var i=0 ; i<aPairs.length; i++)
{
aTmp = aPairs[i].split("=");
this.data[aTmp[0]] = aTmp[1];
}
},
GetValue:function(key)
{
return this.data[key];
},
SetValue:function( key, value )
{
if (value == null)
delete this.data[key];
else
this.data[key] = value;
},
ToString:function()
{
var queryString = new String("");

for (var key in this.data)
{
if (queryString != "")
queryString += "&"
if (this.data[key])
queryString += key + "=" + this.data[key];
}
if (queryString.length > 0)
return "?" + queryString;
else
return queryString;
},
Clear:function()
{
delete this.data;
this.data = [];
}
}


//////////
QueryString.GetValue('dd')
foyuan 2006-11-01
  • 打赏
  • 举报
回复
不会吧??

看你哪里写错了没有

或者改成下面的:
zhaboy 2006-11-01
  • 打赏
  • 举报
回复
不行啊 System.QueryString 就找不到
foyuan 2006-11-01
  • 打赏
  • 举报
回复
/**
* @author robin
* @namespace System
*/
var System=System?System:{};
System.QueryString=
{
data :{},
Initial:function()
{
var aPairs, aTmp;
var queryString = new String(window.location.search);
queryString = queryString.substr(1, queryString.length); //remove "?"
aPairs = queryString.split("&");
for (var i=0 ; i<aPairs.length; i++)
{
aTmp = aPairs[i].split("=");
this.data[aTmp[0]] = aTmp[1];
}
},
GetValue:function(key)
{
return this.data[key];
},
SetValue:function( key, value )
{
if (value == null)
delete this.data[key];
else
this.data[key] = value;
},
ToString:function()
{
var queryString = new String("");

for (var key in this.data)
{
if (queryString != "")
queryString += "&"
if (this.data[key])
queryString += key + "=" + this.data[key];
}
if (queryString.length > 0)
return "?" + queryString;
else
return queryString;
},
Clear:function()
{
delete this.data;
this.data = [];
}
}

把上面的js添加进你的文件

System.QueryString.GetValue("id")就行了
zhaboy 2006-11-01
  • 打赏
  • 举报
回复
原因找到了,不是Request.QueryString[""]取得不了,而是变成乱码了,我在程序里面又有乱码处理的代码,所以呢就貌似取得不了了,我自己掉到我自己挖的坑里了,谢谢各位
tianyayilangzi 2006-11-01
  • 打赏
  • 举报
回复
同意楼上的说法 用Request.QueryString[""] 可以直接获得参数
qingyun163 2006-11-01
  • 打赏
  • 举报
回复
不会吧?只要有参数,asp.net就能获得啊~~
zhaboy 2006-11-01
  • 打赏
  • 举报
回复
首先非常感谢您

实际上正好相反的,是这样的问题,我有一个html的页面,其中有个链接是asp.net的 比如
a.html 链接到B.aspx?name=ggg
asp.net无法接收到html页传来的 name= 后面的参数,所以我想到了用JS实现,js分解出了name后面的参数了,可是无法给ASP.NET用

foyuan 2006-11-01
  • 打赏
  • 举报
回复
你如果想用js和aspx联合实现的话比较简单的
你可以在页面里面这样写
<script>
var dd='<%= Request.QueryString["dd"]%>';
<script>
这样就行了 呵呵

上面的js中QeuryString未定义 你可一在QueryString前面var
var QueryString={
//...
};
相关推荐
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-11-01 11:46
社区公告

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

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