Die URL wird in UserControl (ASP.NET) nicht aufgelöst

8

Wenn ich die abgeleitete Klasse testA a PlaceHolder übergebe, die eine Hyperlink enthält, mit einer URL, die mit beginnt  eine Tilde, löst es richtig auf.  Wenn ich jedoch testB übergebe  (identisch abgesehen davon erbt von   System.Web.UI.UserControl ) gleich PlaceHolder Es  macht es wörtlich (nicht  transformiere / lösche das '~')

Irgendwelche Ideen?

%Vor%

Dies ist ASP.NET

    
maxp 19.10.2010, 14:42
quelle

2 Antworten

5

Wenn Sie von System.Web.UI.UserControl erben und Ihr Steuerelement nicht mit einer ascx -Datei verknüpfen, wird Ihr Steuerelement TemplateSourceVirtualDirectory nicht gesetzt, dies wird von der ResolveClientUrl -Methode benötigt - wenn es leer ist oder die URL leer ist wird zurückgegeben AS IS .

Um Ihr Problem zu lösen, setzen Sie einfach AppRelativeTemplateSourceDirectory :

%Vor%     
MK. 01.11.2010, 10:21
quelle
1

Ein UserControl ist normalerweise einer ascx -Datei zugeordnet das definiert sein Markup. Solche Steuerelemente sollten zuvor mithilfe von TemplateControl.LoadControl () instanziiert werden Sie werden der Seite hinzugefügt, um eine Ereignisaufholung durchzuführen.

Ich vermute, dass ein Ereignisabgleich nicht stattfindet, da Sie LoadControl() nicht aufrufen, so dass Hyperlink des NavigateUrl niemals eine Chance hat, ordnungsgemäß aufgelöst zu werden.

    
Frédéric Hamidi 19.10.2010 15:22
quelle

Tags und Links