用户控件中的隐藏字段在客户端上具有值,但在服务器上没有

时间:2018-03-30 16:08:59

标签: javascript c# asp.net

我有一个包含多个用户控件的.aspx页面。

其中一个用户控件,我们称之为UC0,包含另外四个动态放置的另一个用户控件实例,让我们称之为UC1。

UC1的显示属性设置为" block'或"无"根据用户偏好,但始终显示至少一个UC1控件。

在用户控制UC1中,我有一个隐藏字段。我在javascript中设置了隐藏字段的值,可以看到设置的值。

当我尝试在服务器端检索值时,该值为空字符串。

如果我在UC0中只放置一个UC1实例,那么我可以按预期看到服务器端值。

动态用户控件具有唯一的ID,但隐藏字段的ID是相同的。

我尝试动态添加隐藏字段并为每个字段提供唯一ID但我仍然得到相同的结果。 有什么我可以失踪的吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

根据帖子,您的网页会呈现一个没有任何价值的隐藏字段。然后执行反映正确更改的JavaScript,但该值不会反映在服务器上。

原因是Web Forms框架实际上是如何工作的。它遵循一个生命周期,没有特殊控件或Ajax服务器保存初始值。因此,当您通过JavaScript进行修改时,服务器仍然不知道更改。 JavaScript固有地影响客户端,而不是服务器。

enter image description here

如果你使用UpdatePanel或Ajax,它会纠正。它会将数据发送回服务器。

axios({
     method: '',
     url: '',
     data: ''
}).then(function(response) {

});

这将是一种方法。