05. marts 2004 - 23:18Der er
10 kommentarer og 1 løsning
Kan ikke tilgå User.Identity.Name fra ascx.cs fil
Jeg har lavet en menu som en user-component, men i denne menu vil jeg gerne til gå User.Identity.Name, men dår følgende fejl n nå jeg compiler:
C:\Inetpub\wwwroot\cs\\knappePanel.ascx.cs(37): The type or namespace name 'User' could not be found (are you missing a using directive or an assembly reference?)
snepnet>> eeh.. nu er det sådan, at en usercontrol ikke har noget page-object.
vb-begynder>> du skal have fat i din HttpContext som din usercontrol-instans er en del af. Det kan du gøre ved
1) enten at få fat i en reference til den side usercontrollen er en del af og derfra få fat i User-objectet 2) bruge den statiske metode HttpContext.Current som vil give dig en reference til den aktuelle HttpContext
System.Web.UI.UserControl har base i TemplateControl, som har base i Control, som implementerer Page, der returnerer en reference til det System.Web.UI.Page objekt som fungerer som aktuel container.
Nedenstående skulle derfor ikke give nogle problemer :
// // some using's // public class UC : System.Web.UI.UserControl { private void Page_Load(object sender, System.EventArgs e) { this.Page.Response.Write(this.Page.User.Identity.Name); }
snepnet>> godt, så er vi enige... nok bare lidt ord-forkludleri, da der jo også er en type der hedder Page, hvilken var den jeg troede du henviste til.
Det er rigtigt at UserControl har en property der hedder Page som referer til det page-object usercontrol'en er en del af, og det pageobject har en peroperty der hedder User som referer til det IPrincipal-object vb-begynder er interreseret i :)
Jamen så er der jo bare styr på bollen :o) Så må vi bare håbe at vb_begynder kan komme videre.... Hmm... der er noget der lige slår mig. [vb]_begynder ?!? så giver "this." jo nok ikke det store :o)
vb_begynder >> giv lige lyd hvis du får problemer med at transmogriffe koden om til VB. Unskyld jeg ikke lige var opmærksom på dit navn.
Ups. det må i undskylde, men min makker som havde sidet ved min maskine i går havde vist ikke fået logget af eksperten (Derfor skiver jeg som pnr og ikke vb-begynder). sorry!
well... this referer bare til det object man står i... jeg bruger det kun når det er nødvendigt for læsevenlighedensskyld samt når jeg SKAL, f.eks. når hvis jeg skal sende referencen af objectet videre eller f.eks. ved dette:
Foo(int id) { this.id = id; }
så... det er op til dig om du vil bruge det, i dette tilfælde vil det måske være en god ide for ikke at blande det sammen med typen af samme navn.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.