none
Cual es la diferencia entre controles "cshtml" o "aspx" en MVC 4 RRS feed

  • Pregunta

  • Hola

    He visto varios tutoriales en la web y hay unos que usan formularios tradicionales ".aspx" y otros "creo que la mayoria" controles "cshtml". Cual es la diferencia entre estos?

    Por otra parte, usando Visual Studio MVC 4, creando una aplicacion. Al igual que la version 2008, te crea un master page con unas paginas y controles por defecto lo cual sirve como para aprender o medio ver la logica. Ahora con MVC 4 me salen en una carpeta "Home" 3 paginas creadas "About.cshtml, Contact.cshtml y Index.cshtml"... Al ejecutar estas paginas, todos tienen un mismo header y estilo, el cual segun vi todo eso esta en un control llamado "_Layout.cshtml"... Pero en el codigo de cada pagina no hay nada asi como que haga referencia a una master page o a ese archivo ni nada "supongo que este concepto no existe aqui".

    Me pueden explicar como se maneja aqui esos conceptos de master page?

    miércoles, 11 de septiembre de 2013 20:06

Respuestas

  • Hola,

    Como sabrás, existen 2 motores principales para programar la Vista, está el típico y el de siempre Asp.Net y el nuevo motor de MVC llamado Razor.

    Pues la principal diferencia está en el motor que usan, los archivos .ASPX se usan para crear la vista con códigos Asp.net, mientras que los .cshtml son los archivos que se usan para renderizar código Razor.

    Ahora, en MVC las MasterPages cambián un poco, _Layout.cshtml es la página maestra "por defecto" que tiene MVC, todas las páginas se dirigen automaticamente a ella, es por eso que no ves en ninguna parte que mandes a llamar a esa masterpage. Si se desea No usar páginas maestras u otro archivo diferente al _Layout para una vista, se deberá escribir explicitamente el siguiente código al inicio de la página :

    @
    {
     Layout = null; // si no se desea una masterpage
     Layout = "~/Views/Shared/_testLayout"; // Para un diferente archivo
    }

    Cabe mencionar que en MVC no se llaman MasterPages, sino "Layouts"

    Más Información AQUI!

    Ahora, la carpeta "Home" es la nomenclatura del Controlador (HomeController) y los cshtml de adentro son acciones del controlador o vistas parciales.

    Saludos!

    • Marcado como respuesta Zr-.- viernes, 13 de septiembre de 2013 0:13
    jueves, 12 de septiembre de 2013 1:18

Todas las respuestas

  • Hola,

    Como sabrás, existen 2 motores principales para programar la Vista, está el típico y el de siempre Asp.Net y el nuevo motor de MVC llamado Razor.

    Pues la principal diferencia está en el motor que usan, los archivos .ASPX se usan para crear la vista con códigos Asp.net, mientras que los .cshtml son los archivos que se usan para renderizar código Razor.

    Ahora, en MVC las MasterPages cambián un poco, _Layout.cshtml es la página maestra "por defecto" que tiene MVC, todas las páginas se dirigen automaticamente a ella, es por eso que no ves en ninguna parte que mandes a llamar a esa masterpage. Si se desea No usar páginas maestras u otro archivo diferente al _Layout para una vista, se deberá escribir explicitamente el siguiente código al inicio de la página :

    @
    {
     Layout = null; // si no se desea una masterpage
     Layout = "~/Views/Shared/_testLayout"; // Para un diferente archivo
    }

    Cabe mencionar que en MVC no se llaman MasterPages, sino "Layouts"

    Más Información AQUI!

    Ahora, la carpeta "Home" es la nomenclatura del Controlador (HomeController) y los cshtml de adentro son acciones del controlador o vistas parciales.

    Saludos!

    • Marcado como respuesta Zr-.- viernes, 13 de septiembre de 2013 0:13
    jueves, 12 de septiembre de 2013 1:18
  • Mas claro no se puede... Agradecido 100%!!!
    viernes, 13 de septiembre de 2013 0:12