2010-07-13 2 views
5

Proveniente dal mondo dell'HTML, XML e PHP è un nuovo modo di pensare quando si creano applicazioni Web utilizzando ASP.NET. Mi piacerebbe utilizzare il seguente codice nel mio MasterPage:Convenzione di denominazione ID in ASP.NET?

<div id="leftnav"> 
    <asp:ContentPlaceHolder ID="leftnav" runat="server"> 
    </asp:ContentPlaceHolder> 
</div> 

Ma poiché leftnav in questo esempio viene utilizzato due volte, Visual Studio fare un piccolo ma notevole protesta. Come dovrei pensare in questa situazione e quale è l'uso più appropriato dell'ID di denominazione in ASP.NET.

Non mi piace il nome predefinito dal id="ContentPlaceHolder1" non dice nulla del contenuto.

Grazie per l'ascolto!

+0

Avete davvero bisogno di dare al div un ID? A proposito, preferisco dare ai controlli un ID che dia una conclusione al suo tipo, per esempio. DivLeftNav, CphLeftNav o TxtLeftNav. –

+4

@Tim Schmelter: data la domanda, non potremmo semplicemente supporre che ci sia un motivo per cui l'OP ha bisogno ...? dopo tutto, non è raro avere bisogno di documenti di identità. –

+0

L'idea generale è di creare uno stile semplice della pagina, usando quindi leftnav come riferimento per il mio foglio di stile dove #leftnav {float: left; larghezza: 190 px; } e #content {margin-left: 200px; }. Potrebbe essere che stia pensando tutto qui, dato che sono nuovo di ASP :) –

risposta

8

Chiamerei il div "nav" e il segnaposto "navPlaceholder". Questo perché la parola "sinistra" implica la posizione , che dovrebbe essere gestita esclusivamente dal tuo css, non dal tuo html. Cosa accadrebbe se i progettisti decidessero di voler mettere la navigazione sulla destra? Potresti farlo nel tuo css, ma finirebbe con qualcosa di confuso come div #lefnav { float:right; } un esempio banale, lo so, ma qualcosa da tenere a mente.

+1

un approccio ragionevole. +1 per separare le nostre preoccupazioni –

+0

Grazie Daniel. Ho cambiato i nomi in globalNav, localNav e supplementNav per descrivere meglio il suo contenuto, piuttosto che lo stile o la posizione. Cordiali saluti, –

3

Che ne dici di "leftNavPlaceHolder"?

Proprio come lungo come la vostra coerente con la tua convenzione di denominazione :)

1

Vorrei suggerire, non dare id per div a meno che non si ha realmente bisogno, perché avrà un impatto sulle prestazioni.

+0

gli 11 caratteri in più inviati al client? si noti che il DIV non è 'runat =" server "'. OP sta parlando di una * piccola ma evidente protesta * nella finestra di progettazione - non un errore di compilazione =) –

+0

Sto parlando a ID controlli intero html non per ID singolo –

+0

Penso che se hai molto html sulla pagina, e hai un identificatore di noncuranza, avrà un impatto sulle prestazioni, anche se è minore. –

1

Soggettivo. La risposta ovvia a questo tipo di domanda è: scegli qualcosa che ti piace; standardizzalo e seguilo sempre.

Personalmente, nomino le mie cose nel modo seguente:

<asp:Literal runat="server" ID="ltlDescriptionOfContent" /> 

o

<asp:PlaceHolder runat="server" ID="plhSendMessage"> 
</asp:PlaceHolder> 

Per un'area che contiene, sì, informazioni sull'invio di un messaggio. Ma tu non devi farlo. Fai quello che vuoi. Basta renderlo coerente. E idealmente, trasmettere una piccola informazione su ciò che è dentro.

+0

Questo è un buon modo di pensare, proprio come le ordinarie convenzioni di denominazione C#. Ho solo pensato che ci fosse una semplice convenzione di denominazione in giro, che tutti usano. Grazie per la tua risposta. –

+0

Anche questo è un consiglio molto ragionevole. –

2

No, gli ID predefiniti sono terribili. Non riesco a immaginare che debbano essere usati, è solo che Visual Studio non è abbastanza intelligente da suggerire qualcosa di meglio, e non stanno suggerendo qualcosa di semi-intelligente, perché non vogliono provare a venire fuori come qualcosa che non sono. Ragionevole =)

Quindi prendere l'abitudine di sempre cambiando gli ID di default. Ciò a cui li modifichi dipende interamente da te; "LeftNavContent"? Praticamente l'unica cosa che è coperta dalla convenzione è la maiuscola, quando si tratta di ID.

L'unica cosa che dovrebbe cambiare in realtà da HTML puro è che non è possibile utilizzare ID come "left-navigation", ovvero i trattini contenenti, per i controlli del server.

+0

+1 per "prendere l'abitudine di modificare sempre gli ID predefiniti" Non hanno alcun significato e rendono più difficile la comprensione degli script sul lato client. –

1

Prefisso tutti i controlli ASP.Net con ux per indicare il controllo utente.

Poi si può collegare il vostro String emailAddress = "[email protected]"; al uxEmailAddress.Text = emailAddress