【发布时间】:2017-09-07 20:11:32
【问题描述】:
我的 .NET Web 应用程序中有一些用户控件,我在同一页面中使用它们。它们有一些属性,出于某种原因,我需要一些隐藏字段来保存属性的值。
所以在其中一个用户控件中有这段代码:
<input type="hidden" data-versus="PL" value="<%= vs_pl %>" />
其中 vs_pl 是控件的属性:
private decimal? _vs_pl; // plan
public decimal? vs_pl {
get { return _vs_pl; }
set { _vs_pl = value; }
}
所有这些都正确呈现为:
<input type="hidden" data-versus="PL" value="-190.2">
在另一个用户控件中,我有一段类似的代码:
<asp:HiddenField ID="hfOrg" runat="server" Value='<%= org %>' />
其中 org 是与上述类似的属性。但这呈现为:
<input type="hidden" name="ctl00$cs$hfOrg" id="cs_hfOrg" value="<%= org %>">
在同一个页面中。这两个控件都没有数据绑定或内部数据控件,它们也没有绑定到页面中的数据源。
我意识到第一种情况不是服务器控件,只是一个普通的HTML输入标签,而后者是由服务器渲染的。但是我发现这是一种奇怪的行为,我希望它也能在第二种情况下工作。
我哪里错了?
【问题讨论】: