Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [ASP.NET C#]Codebehind

  1. #1
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206

    [ASP.NET C#]Codebehind

    Ave populus
    sto facendo una pagina aspx dove tengo in un file esterno il codice, quindi la direttiva @Page è:
    codice:
    <%@ Page Language="C#" src="src/test.cs" ContentType="text/html" %>
    ed il file src/test.cs è così:
    codice:
    void Page_Load(Object Src, EventArgs E) {
    	msg.Text = "Hello World";
    }
    ma richiamando la pagina dà questo errore:
    Server Error in '/Aki' Application.
    Compilation Error
    Description: An error occurred during the compilation of a resource required to service this request.
    Please review the following specific error details and modify your source code appropriately.

    Compiler Error Message: CS0116: A namespace does not directly contain members such as fields or methods

    Source Error:

    Line 1: void Page_Load(Object Src, EventArgs E) {
    Line 2: msg.Text = "Hello World";
    Line 3: }


    Source File: D:\www\aki\src\test.cs Line: 1
    come mai???

  2. #2
    ma il tuo test.cs contiene solo le 3 righe che hai postato?
    se si non puoi usare metodi al di fuori di classi. per programmare in codebehind devi creare una nuova classe che eredita la classe Page e ridefinirne i metodi che ti servono (tipo il Page_Load come hai fatto sopra)
    xxx

  3. #3
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Mi sembra che non ci sia la dichiarazione della classe

  4. #4
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Ora il codice del .cs è così:
    codice:
    public class index : System.Web.UI.Page {
    	
    	void Page_Load() {
    		msg.Text = "Hello World";
    	}
    }
    ma dà ancora questo errore:
    Compiler Error Message: CS0246: The type or namespace name 'msg' could not be found (are you missing a using directive or an assembly reference?)

    Source Error:

    Line 2:
    Line 3: void Page_Load() {
    Line 4: msg.Text = "Hello World";
    Line 5: }
    Line 6: }


    Source File: D:\www\aki\src\test.cs Line: 2

  5. #5
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    devi dichiarare msg con la direttiva protected

    es. protected System.Web.UI.WebControl.Label msg;

  6. #6
    mancano gli imports dei namespace che usi (system, system.UI.Web, system.UI.Web.WebControls, ecc)
    inoltre non puoi usare un oggetto se non è dichiarato (nel tuo caso msg)
    tu stai implementando la classe Page nella quale hai inserito una Label (o quello che è) di nome msg. nella classe che implementa page devi ridefinire msg per poterlo utilizzare, quindi dovrai dichiararlo per ex così:
    codice:
    public class ...
    {
    protected Label msg;
    ..
    }
    xxx

  7. #7
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    Grassie 1000 ho risolto caricando l'assembly System.Web.UI.WebControls e dichiarando, come detto, la direttiva Label:
    codice:
    using System;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public class _index : System.Web.UI.Page {
    	protected Label msg;
    	
    	protected void Page_Load(object sender, EventArgs e) {
    		msg.Text = "Hello World";
    	}
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.