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

标签 c# javascript asp.net

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

示例:

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


它在标签中显示得很好,我可以继续通过 javascript 操作它。

然后我进行设置,以便通过 C# 代码隐藏的 ButtonClick 事件将该变量放入 session 对象中。

示例:

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


ButtonConfirm_Click 方法会触发 Response.Redirects 到另一个页面,并通过 C# 代码隐藏的 page_load 方法使用 session 对象填充 asp 标签。

示例:

lblResult.Text = Session["sessionName"].ToString();


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

示例:

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

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


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

无论如何,我有什么遗漏的吗? asp.net 无法检测 javascript 对标签所做的更改吗?使用innerHTML或类似的东西时是否存在一些不兼容问题可能导致这种情况发生?

提前致谢!

最佳答案

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

关于c# - 通过 JavaScript 将值分配给 Asp.net 标签,然后通过 C# session 对象传递时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7551315/

相关文章:

c# - 如何通过移动椭圆来更改 Canvas 中两个矩形的大小?

c# - 在 DataView 中查找 DataRowView 的索引

c# - Page.Header.Controls.Add(control) 将控件添加到 <body> 而不是 <head>

c# - DDD,聚合可以处理来自另一个聚合的事件吗?

c# - 用C#更改按下的键

javascript - AJAX读取文件并删除内容(不是文件本身)

javascript - React Native 动画 useEffect 钩子(Hook)与依赖项数组创建无限循环

javascript - 我无法理解此 JavaScript 语句中的括号

javascript - 如何从 var 值中识别数字?

c# - 如何从 3.5 asmx web 服务获取 JSON 响应