vista una sintaxis renderbody que página parcial para net método mvc llamado diseño asp asp.net asp.net-mvc-3 razor

asp.net - una - razor mvc



¿Por qué Razor_layout.cshtml tiene un subrayado inicial en el nombre del archivo? (5)

En el proyecto predeterminado de ASP.NET MVC 3, el diseño y los archivos cshtml parciales comienzan con un guión bajo

  • _viewstart
  • _Layout
  • _LogOnPartial

¿Qué significa esta convención y para qué se usa? ¿Debo seguir esta convención?

¿El marco da algún significado especial a un archivo .cshtml que comienza con un guión bajo?


Así es como lo hace Ruby on Rails (los Partials comienzan con _ pero la llamada Render Partial no incluye _), y ASP.net MVC se ha inspirado mucho.

No hay ninguna razón técnica en realidad, solo una convención para mostrar claramente la intención a otros desarrolladores (y usted mismo 6 meses después) de decir: Esta es una vista parcial.


Hasta donde yo sé, esto es simplemente una convención utilizada para identificar la intención del archivo; No creo que realmente cambie el comportamiento del archivo. En la mayoría de los contextos de desarrollo, anteponer un guión bajo identifica algo que debe significar para uso "privado", ya sea por una clase, o en este caso, otra plantilla.


Las páginas que no pueden mostrarse mediante solicitudes directas de su navegador (páginas maestras, vistas parciales, etc.) tienen un guión bajo (_) al comienzo de sus nombres.

Entonces, si intenta hacer la solicitud a _Layout.cshtml (esta es la página maestra), recibirá un error del servidor.

Es una forma de distinguir los archivos que no pueden examinarse como páginas independientes, en el motor Razor view.

Piénselo de esta manera ... en MVC 2 ... diferenciaría la vista parcial y la mastersite con el sufix .master, .ascx, y las páginas normales son .aspx, por otro lado, en la vista Razor ... todas las vistas son .cshtml, por lo que para distinguir páginas principales y parciales tendrán un prefijo (_). no es nada obligatorio, solo una "convención".


No uso MVC, pero con páginas web que también usan la sintaxis de la afeitadora, el prefijo _ generalmente indica que la página no debe ser accesada por un usuario sino por otras páginas o algún código. Si intenta navegar a una página que contiene el _prefix, asp.net evitaría el acceso a él. Es por eso que se usa con páginas de diseño y otras páginas similares, ya que el usuario no debe acceder directamente a ellas.

Algo así como la carpeta App_Code en asp.net


Razor fue desarrollado para páginas web ASP.NET (WebMatrix), que no tiene el mismo tipo de protección integrada en las carpetas de vistas y el enrutamiento que se obtiene dentro de MVC. Dado que las páginas de diseño en páginas web no están destinadas a ser servidas directamente, se les agrega el subrayado. Y el marco de las Páginas Web ha sido configurado para no permitir que los archivos con guiones bajos en sus nombres sean solicitados directamente. Otros archivos .cshtml dentro de las páginas web generalmente deben ser navegables. Son el equivalente de los archivos .asp o .php.

El equipo de ASP.NET ha declarado que las páginas web son un punto de partida dentro del desarrollo de ASP.NET, lo que debería conducir a la migración a MVC a tiempo (para aquellos que desean seguir adelante). Parte de eso significa que debe ser lo más fácil posible migrar de páginas web a MVC. En consecuencia, tiene sentido transferir las convenciones de nomenclatura establecidas dentro de las páginas web a los archivos MVC Razor.

Entonces hay una razón técnica para agregar los nombres de los archivos a un prefijo bajo, simplemente no es relevante para MVC.