2012-04-18 10 views
5

Indubbiamente mi manca qualcosa di molto ovvio qui - ma sono nuovo al punto di vista, quindi per favore abbiate pazienza con me.Dov'è il code-behind per le pagine aspx di sharepoint?

Ho aggiunto con successo una pagina master, creato un tipo di contenuto e ho creato una pagina aspx per il mio tipo di contenuto personalizzato - ma non riesco a trovare il suo file cs !?

C'è un altro modo in cui il code-behind è implementato nelle soluzioni sharepoint? Sembra essere simile quando si creano i controlli. Sono abituato allo sviluppo di applicazioni web standard asp .net C# tutte le pagine di aspx sono state fornite con i file code-behind come standard ".

Grazie.

risposta

5

In SharePoint, è possibile avere una classe code-behind, ma deve trovarsi in un assembly, non in un file code-behind aspx.cs.

utilizzando Visual Studio 2010, la direttiva di pagina per la pagina aspx sarebbe simile a questa:

<%@ Page 
    Language="C#" 
    DynamicMasterPageFile="~masterurl/default.master" 
    Inherits="MyNamspace.MyPage, $SharePoint.Project.AssemblyFullName$" 
    %> 

È quindi possibile creare una classe MyNamspace.MyPage e fare tutto quello che farebbe in un normale file code-behind.

Se dai un'occhiata alle pagine aspx della finestra 14 hive \ TEMPLATE \ LAYOUTS, vedrai, mentre alcune pagine hanno un codice inline (che è consentito nei layout), quasi ogni pagina eredita da una classe in uno degli assembly di SharePoint.

+0

Grazie mille per la tua risposta Rich - lo apprezzo. Quindi, perché questo è diverso rispetto ai progetti asp .net standard?Perché c'è tutto questo incasinarsi rispetto alle classi code-behind che arrivano "come standard"? –

+0

Poiché le pagine SharePoint possono essere aggiunte/modificate in SharePoint Designer e anche attraverso il browser, il codice inline e le code code behind non sono consentiti per motivi di sicurezza, prestazioni e persino funzionali. Per ulteriori informazioni sulle differenze, vedere [ASP.NET vs. SharePoint: Sviluppo pagine] (http://msdn.microsoft.com/en-us/library/ff512772.aspx) –

+0

Errore di ricezione 'Impossibile caricare l'assembly ' $ SharePoint.Project.AssemblyFullName $'. Assicurati che sia compilato prima di accedere alla pagina. Ho aggiunto il file .cs nella cartella in cui risiede il mio file aspx. Sono anche nuovo di SP. – shashwat

1

Vi consiglio di chiedere questo nel sito dedicato di SharePoint. Lo puoi trovare here.

Ma rispondere si mette in discussione, non esiste un codice dietro a disposizione per voi in pagine di SharePoint, almeno in MOSS 2007. Non è sicuro su SharePoint 2010 esattamente, ma deve essere lo stesso.

+0

Grazie Dante, apprezza la risposta. –

2

Code-Behind è nascosto dal design delle versioni 2007 e 2010. Vedere here per abilitarlo in base alla posizione (PageParserPath).

Nel lungo termine, in termini di sostenibilità, manutenzione e gestione, sarà meglio attenersi alle convenzioni in SharePoint e utilizzare i controlli anziché il code-behind, se possibile.

+0

Grazie mille Paul! Sì, con tutti i mezzi - Farò ciò che è la migliore pratica per quanto riguarda lo sviluppo di sharepoint - Mi chiedo solo perché è il caso. Ovviamente ho usato molto C# per aggiungere funzionalità server-side alle mie pagine, quindi ora trasferire tutte le responsabilità sui controlli web mi sembra estraneo a me - e non riesco davvero a capire perché sia ​​così. Continuerò a leggere comunque, grazie ancora. –

2

è necessario aprire la pagina sharepoint .aspx nella finestra di progettazione del punto di condivisione e aggiungere le istruzioni inherit con la classe .cs.

qualcosa di simile:

<%@ Page Language="C#" MasterPageFile="~masterurl/default.master" Inherits="Namespace.ClassName,Namespace,Version=1.0.0.0, Culture=neutral, PublicKeyToken=tokenid" %> 

una cosa è rimanere come in precedenza @ risposta di Paolo è necessario attivarla su una base per posizione (PageParserPath).

+0

Ma suppongo che l'uso del code-behind sia 'scoraggiato' (o almeno non incoraggiato come se si trattasse di una soluzione asp .net standard) dato che dobbiamo andare a queste misure extra per abilitarlo, è questo destra? Grazie mille per la tua risposta @Jigs. –

Problemi correlati