0

谁能解释为什么在 ASP.NET 应用程序中部署Repeater控件的子控件的名称属性会在不同的IIS服务器上生成不同的原因?

一些 IIS 服务器的名称是使用以下格式生成的:

String.Format("{0}:_ctl{1:00}:{2}", RepeaterControlID, itemIndex, ChildControlID);

例如

<input name="Mntc_Software_List:_ctl1:id" id="Mntc_Software_List__ctl1_id" type="hidden" value="1772" />

在其他 IIS 服务器上,格式为:

String.Format("{0}$ctl{1}${2}", RepeaterControlID, itemIndex, ChildControlID);

例如

<input name="Mntc_Software_List$ctl01$id" type="hidden" id="Mntc_Software_List_ctl01_id" value="1772" />
4

2 回答 2

1

您的两个名称之间的区别在于一个使用“$”分隔符,另一个使用“:”分隔符。在 Control 类上使用 Lutz 反射器表明这是由属性“EnableLegacyRendering”控制的,这与符合 XHTML 1.0 的控件呈现 (MSDN)有关。

谷歌为 EnableLegacyRendering 获取更多信息。

于 2010-09-10T06:42:35.287 回答
0

实际上,我相信一个是名称,一个是 ID。我忘记了哪个是哪个,但是名称和 ID 的规则是不同的。

如果您确定它们都是 Name,那么您确定两台服务器的 .NET 版本相同吗?旧版本可能会以不同的方式生成它们的名称。

于 2010-09-10T06:07:13.063 回答