Domanda

Qualcuno ha consigli su come spostare una pagina master da una soluzione / applicazione a un'altra?

Ho copiato una pagina master da una soluzione esistente a una nuova.

La soluzione originale viene compilata ed eseguita correttamente.

Nella nuova soluzione la pagina causa errori di compilazione

Queste sono principalmente 'variabili' non dichiarate.

Ho commentato tutto il codice del server per la pagina, ad eccezione di 2 affermazioni molto semplici.

l'istruzione 1 fa riferimento a un controllo presente nel markup della pagina originale

pgLoginView.EnableViewState = True

L'istruzione 2 fa riferimento a un controllo che è stato appena aggiunto a scopo di prova

lblFrogs.Text = "sdfgsd"

È come se il compilatore non fosse a conoscenza dei membri della classe che dovrebbero essere generati dal markup. Ho verificato che l'attributo 'Eredita' dei file di markup sia impostato correttamente. Quando invoco intellisense nell'editor di codice, entrambi gli oggetti (lblFrogs e pgLoginView) sono elencati e, a loro volta, elencano le loro proprietà e metodi correttamente dopo aver premuto '.'

Qualsiasi aiuto o idea relativa a questo problema sarà molto apprezzato. Sono alla fine del mio ingegno - è stato un breve viaggio.

È stato utile?

Soluzione 4

Ho finalmente trovato la fonte del mio guaio con l'oggetto Profile.

In primo luogo, la funzionalità del profilo è disponibile solo nel progetto del tipo di sito Web. Tuttavia, poiché il progetto era già stato convertito nel tipo di sito Web per risolvere il primo problema con riferimenti agli elementi della pagina, quindi perché l'oggetto profilo non è diventato disponibile?

La risposta è che la conversione non modifica il markup della pagina. La posizione del codice dietro deve essere specificata con " CodeFile " ;, e l'attributo Inherits deve avere le informazioni sullo spazio dei nomi in primo piano. Esempio:

  

Altri suggerimenti

Dovresti controllare il codice designer generato per la tua pagina principale - sebbene la pagina .aspx / .master sia usata in fase di esecuzione per creare istanze di tutti i controlli sulla tua pagina, in fase di compilazione tutte le informazioni su quali controlli sono presenti sul markup è contenuto nella classe parziale nel file .designer.master:

public partial class Site1
{
    /// <summary>
    /// ContentPlaceHolder1 control.
    /// </summary>
    /// <remarks> Auto-generated field.</remarks>
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder1;

    // Etc...
}

Se quella pagina non contiene il codice generato correttamente, non sono sicuro di cosa suggerire se non giocarci o se ti blocchi davvero, proclama tu stesso i controlli - Ho già avuto questo problema ma non so molto su come viene generato il codice designer.

Se non è questo il problema, sei sicuro che Visual Studio non abbia deciso di rinominare nessuno dei controlli?

christian-hayter Sembrava essere sulla strada giusta. Ho convertito il progetto in un progetto di sito Web e il problema è scomparso.

Sembrerebbe che la causa principale possa rimanere un mistero.

Qualcosa è definitivamente impazzito con la compilazione di questa pagina.

Non riesco a fare riferimento alla proprietà Profile. Questo articolo di Dino Esposito Dice che l'oggetto Profile viene aggiunto alla pagina come parte del processo di compilazione in questo modo:

  

ProfileCommon Profile protetto {       ottenere {           return ((ProfileCommon) (Context.Profile));   }}

Quando trovo un file nei file per ProfileCommon in un progetto di lavoro, ottengo molti risultati dai file temporanei di asp.net. Nel progetto non funzionante, ProfileCommon non si verifica in nessuno dei file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top