前台怎么获取后台的id?

DDRsun3 2012-08-26 10:13:40
同一个aspx,我想获取前台想获取后台的UserID,怎么做
1:用隐藏域获取ViewState
    protected void Page_Load(object sender, EventArgs e)
{//把用户的昵称传到客户端显示,并将userID放到隐藏域
if (Session["UserID"] != null)
{
userid = Session["UserID"].ToString();
lab_Nickname.Text = Session["Nickname"].ToString();
//Response.Write(userid);
if (ViewState["userid"] == null)
{
ViewState["userid"] = userid;
}
else {
ViewState["userid"] ="";
}

前台: <input id="userid"type="hidden" value="ViewState('userid')" /> 结果提示:ViewState未定义;

2:我在后台建了个函数
 public string postUserID()
{
if( userid!=null){
return userid;
}
else
{
return "";
}
}


然后JS: var userid=<%=postUserID()%>;结果提示“应为表达式”

哪里错了?

还有别的办法吗?

请各位帮忙看看,谢谢了~~
...全文
475 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
DDRsun3 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

13楼的可以?楼主出来给真相啊
[/Quote]

直接var userid="<%=postID()%>",放在异步对象js代码的前面
DDRsun3 2012-08-28
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

var value = document.getElementById("隐藏域ID");
或者JQUERY $("#隐藏域ID").val();
注意加载顺序问题,js代码应该放在隐藏域的后边才能获取到隐藏域的值。
[/Quote]
哦~~~难怪~~~
xiedu414 2012-08-27
  • 打赏
  • 举报
回复
var value = document.getElementById("隐藏域ID");
或者JQUERY $("#隐藏域ID").val();
注意加载顺序问题,js代码应该放在隐藏域的后边才能获取到隐藏域的值。
MR-LEE 2012-08-27
  • 打赏
  • 举报
回复
13楼的可以?楼主出来给真相啊
「已注销」 2012-08-27
  • 打赏
  • 举报
回复

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["UserID"] = 1;
}
}



<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

<input id="Text1" type="text" value='<%=ViewState["UserID"] %>' /></div>
</form>
</body>
</html>


楼主 给分吧
DDRsun3 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用 9 楼 的回复:
引用 7 楼 的回复:

不是<%#postUserID()%>这个就是<%=postUserID()%>
试一下把


谢谢,这样做不错,这是出于为什么?
为什么ViewState用不了?


LZ的方法是对的 不过要加上服务器标签
<input id="userid"type="hidden" value='<%=ViewStata("xx"……
[/Quote]

我是放在from里的,有runat=server,就是提示未定义
wuyk888 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
第一个:value="ViewState('userid')" ViewState会被认为是你定义的js函数名,所以出现未定义
第二个:JS好像不能用<%#%>这种东西与后台交互

实现:还是你第二种后台那个函数,前台可以用
<input id="userid"type="hidden" value="<%#postUserID()%>" />
这样隐藏域就取到了
然后js里docum……
[/Quote]

正解,js里是不能直接用<%%> <%#%>的
「已注销」 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
引用 7 楼 的回复:

不是<%#postUserID()%>这个就是<%=postUserID()%>
试一下把


谢谢,这样做不错,这是出于为什么?
为什么ViewState用不了?
[/Quote]

LZ的方法是对的 不过要加上服务器标签
<input id="userid"type="hidden" value='<%=ViewStata("xx")%>' />
直接通过后台返回数据 用JS获取的话
var userid='<%=postUserID()%>';
DDRsun3 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

不是<%#postUserID()%>这个就是<%=postUserID()%>
试一下把
[/Quote]

谢谢,这样做不错,这是出于为什么?
为什么ViewState用不了?
Louis-Lv 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
第一个:value="ViewState('userid')" ViewState会被认为是你定义的js函数名,所以出现未定义
第二个:JS好像不能用<%#%>这种东西与后台交互

实现:还是你第二种后台那个函数,前台可以用
<input id="userid"type="hidden" value="<%#postUserID()%>" />
这样隐藏域就取到了
然后js里docum……
[/Quote]
up!!!
毛毛虫的爱 2012-08-27
  • 打赏
  • 举报
回复
不是<%#postUserID()%>这个就是<%=postUserID()%>
试一下把
毛毛虫的爱 2012-08-27
  • 打赏
  • 举报
回复
第一个:value="ViewState('userid')" ViewState会被认为是你定义的js函数名,所以出现未定义
第二个:JS好像不能用<%#%>这种东西与后台交互

实现:还是你第二种后台那个函数,前台可以用
<input id="userid"type="hidden" value="<%#postUserID()%>" />
这样隐藏域就取到了
然后js里document.getelementbyid(“userid”).value就都能取到了
孫大聖 2012-08-27
  • 打赏
  • 举报
回复
然后JS: var userid="<%=postUserID()%>";

这样应该就可以了。
杰拉尔 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

=<%#postUserID()%>; 你用#号试试

不行啊,还有发现个问题是如果有这句var userid=<%#postUserID()%>,userid必须有值,页面才会load
即是说,我不登陆就话,页面就不读取评论数据
怎么办?
[/Quote]

#是控件中的。不可能加到JS中的。
杰拉尔 2012-08-27
  • 打赏
  • 举报
回复
<input id="userid"type="hidden" value="<%=ViewState('userid')%>" />

var userid='<%=postUserID()%>';
DDRsun3 2012-08-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

=<%#postUserID()%>; 你用#号试试
[/Quote]
不行啊,还有发现个问题是如果有这句var userid=<%#postUserID()%>,userid必须有值,页面才会load
即是说,我不登陆就话,页面就不读取评论数据
怎么办?
瑞卡哥哥 2012-08-26
  • 打赏
  • 举报
回复
=<%#postUserID()%>; 你用#号试试

62,046

社区成员

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

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

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

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