2010-07-13 31 views
5

Procedente del mundo de HTML, XML y PHP es una nueva forma de pensar cuando se hacen aplicaciones web usando ASP.NET. Me gustaría utilizar el código siguiente en mi MasterPage:¿Convención de nomenclatura de ID en ASP.NET?

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

Pero desde leftnav en este ejemplo se utiliza dos veces, Visual Studio crea una pequeña pero notable protesta. ¿Cómo debería pensar en esta situación y cuál es el uso más apropiado para nombrar identificaciones en ASP.NET?

No me gusta la nomenclatura predeterminada ya que id="ContentPlaceHolder1" no dice nada del contenido.

¡Gracias por escuchar!

+0

¿Usted realmente necesita para dar el div una identificación? Por cierto, prefiero dar a los controles una ID que da una conclusión a su tipo, por ej. DivLeftNav, CphLeftNav o TxtLeftNav. –

+4

@Tim Schmelter: dada la pregunta, ¿no podríamos simplemente asumir que hay una razón por la cual OP lo necesita ...? después de todo, no es raro necesitar ID. –

+0

La idea general es hacer un estilo simple de la página, usando leftnav como referencia para mi hoja de estilo donde #leftnav {float: left; ancho: 190px; } y #content {margin-left: 200px; }. Podría ser que estoy pensando todo mal aquí, ya que soy nuevo en ASP :) –

Respuesta

8

Llamaría al div "nav" y al marcador de posición "navPlaceholder". Esto se debe a que la palabra "izquierda" implica la posición , que debe manejarse solo con su css, no con su html. ¿Qué pasa si los diseñadores decidieron que querían poner la navegación a la derecha? Podrías hacer esto en tu CSS, pero terminarías con algo confuso como div #lefnav { float:right; }, un ejemplo trivial, lo sé pero algo a tener en cuenta.

+1

un enfoque sensato. +1 para separar nuestras preocupaciones –

+0

Thanx Daniel. Cambié los nombres a globalNav, localNav y supplementNav para describir mejor su contenido, en lugar de su estilo o posición. Atentamente, –

3

¿Qué hay de "leftNavPlaceHolder"?

Del mismo modo que a lo largo como su constante con su convención de nombres :)

1

Yo sugeriría, no se dé a DIV ID a menos que realmente necesita, ya que tendrá un impacto en el rendimiento.

+0

los 11 caracteres adicionales que se envían al cliente? observe que el DIV no es 'runat =" servidor "'. OP está hablando de una * pequeña pero notoria protesta * en el diseñador - no es un error de compilación =) –

+0

Estoy hablando con controles html enteros id no para ID simple –

+0

Creo que si tienes mucho HTML en la página, y tu ID sin imparidad, tendrá un impacto en el rendimiento, aunque es menor. –

1

Subjetivo. La respuesta obvia a este tipo de preguntas es: elige algo que te guste; estandarizarlo, y siempre seguirlo.

Personalmente, nombro mis cosas de la siguiente manera:

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

o

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

Para un área que contiene, sí, la información sobre el envío de un mensaje. Pero no tienes que hacer esto. Haz lo que quieras. Solo hazlo consistente. E idealmente, transmita un poco de información sobre lo que hay dentro.

+0

Esa es una buena forma de pensar, al igual que las convenciones de nombres comunes de C#. Solo pensé que había una simple convención de nombres, que todo el mundo usa. Gracias por tu respuesta. –

+0

Este es un consejo muy sensato también. –

2

No, los ID predeterminados son terribles. No puedo imaginar que estén destinados a ser utilizados, es solo que Visual Studio no es lo suficientemente inteligente como para sugerir algo mejor, y no están sugiriendo algo semiinteligente, porque no quieren tratar de salir. como algo que no son. Razonable =)

Así que haga un hábito de siempre cambiando los ID predeterminados. A lo que los cambies depende completamente de ti; "leftNavContent"? Casi todo lo que cubren las convenciones es la capitalización, cuando se trata de ID.

Lo único que debe realmente cambiar de HTML puro es que no puede usar identificadores como "navegación izquierda", es decir, que contienen guiones, para controles de servidor.

+0

+1 para "hacer un hábito de cambiar siempre las ID predeterminadas" No tienen sentido y dificultan la comprensión de las secuencias de comandos del lado del cliente. –

1

Prefijo todos los controles ASP.Net con ux para indicar el control del usuario.

A continuación, puede conectar su String emailAddress = "[email protected]"; a su uxEmailAddress.Text = emailAddress

Cuestiones relacionadas