通过JavaScript将值分配给Asp.net标签然后通过C#会话对象传递时出现问题

时间:2011-09-26 06:26:15

标签: c# javascript asp.net

我通过javascript使用简单的innerHTML调用将变量分配给asp标签

例如:

document.getElementById('labelName').innerHTML = parseFloat(var).toFixed(2);


它出现在标签中,我可以通过javascript继续操作它。

然后我进行了设置,以便通过C#codebehind buttonClick事件将该变量放入会话对象中。

例如:

protected void btnConfirm_Click ( object sender, EventArgs e )
{
    Session["sessionName"] = labelName.Text;
}


buttonConfirm_Click方法触发它Response.Redirects到另一个页面,并通过c#codebehind page_load方法用会话对象填充asp标签。

例如:

  

lblResult.Text = Session [“sessionName”]。ToString();


执行此操作时,标签为空,没有错误或“空”。我试图通过尝试各种方法来缩小问题的范围。当我在第一页后面的c#代码中明确地分配文本并将其分配给下一页的标签时,它会正确显示。

例如:

Page 1:
Session["sessionName"].ToString() = "Test";

Page 2:
lblResult.Test = Session["sessionResult"].ToString();


我已经尝试了其他一些东西,例如在javascript和代码隐藏中转换变量,并检查以确保我在每个适用的标签中都有runat =“server”。

无论如何,这里有什么东西我不见了? asp.net无法检测到javascript对标签所做的更改吗?使用innerHTML或类似的东西时是否会出现一些不兼容的问题,可能导致这样的事情发生?

提前致谢!

1 个答案:

答案 0 :(得分:3)

问题是span标记中的文本(即asp:Label将呈现的内容)不会在帖子中发送到服务器,因此您无法读取更改服务器端。您需要使用输入元素(隐藏字段,文本框等,具体取决于您的ui应该是什么样的)。