2

2 つのプレースホルダーがあり、表示されるのは 1 つだけです。表示はページ読み込み時に設定されます。

<%@ Register TagPrefix="cecontrols" Namespace="Controls" Assembly="Components" %>

各プレースホルダー内にはタグがあります: (ID はそれぞれ異なりますが、File 属性値は同じであることに注意してください)

<cecontrols:Include ID="IE7MessageDisabled" runat="server" File="/IE7-Message.ascx" />

<cecontrols:Include ID="IE7MessageEnabled" runat="server" File="/IE7-Message.ascx" />

ユーザーがページに POST を発行するまで、これは正常に機能し、その後 500 エラーが発生します。

なぜ POST がこれを引き起こしているのですか? どうすればこれを修正できますか?

<error host="" type="System.Web.HttpException" message="Multiple controls with the same ID 'IE7-Message' were found. FindControl requires that controls have unique IDs." source="ExcptManag" detail="   at System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls)&#xD;&#xA;   at System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls)&#xD;&#xA;   at System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls)&#xD;&#xA;   at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)&#xD;&#xA;   at System.Web.UI.Control.FindControl(String id, Int32 pathOffset)&#xD;&#xA;   at System.Web.UI.Page.FindControl(String id)&#xD;&#xA;   at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)&#xD;&#xA;   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)" time="2013-10-03T06:53:06.437Z" />
4

1 に答える 1

1

可視性は、何かが DOM 上にあるかどうかには影響しません。DOM に何かを表示したくない場合は、display:none を使用します。この場合、同じページが 2 回読み込まれ、そのファイル内のコントロールが DOM に 2 回追加されます。

于 2013-10-23T09:12:20.360 に答える