2011-03-10 20 views

Respuesta

44

Nosotros (el equipo de ASP.NET) actualmente no tenemos planes de admitir el modelo de página de WebForms usando la sintaxis de Razor. Además, es poco probable que alguna vez lo consideremos seriamente, ya que los modelos son demasiado diferentes para hacer que los dos funcionen juntos.

+0

Entonces, ¿qué significa esto? ** También podrá usar archivos .cshtml/.vbhtml en aplicaciones basadas en formularios web. Estén atentos. ** http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx#7553469? – Programista

+0

Todavía no existen tales planes. Puede tener una aplicación clásica de WebForms y agregarle archivos Razor, pero no pueden tener controles como ''. – marcind

4

Puede integrarlo usando RazorEngine disponible en Codeplex. Le permite procesar la afeitadora fuera de MVC. Aunque no obtiene todas las características que obtiene de la versión MVC de Razor, como @Html y @Url y otras.

+0

Heh, supongo. :) Simplemente sentí que estaba preguntando cómo usar la afeitadora fuera de mvc, pero tu respuesta tiene más sentido. – Buildstarted

27

Puede usar páginas Razor sin MVC; esto se llama ASP.Net WebPages.

Simplemente agregue archivos .CSHTML a un proyecto ASP.Net 4.0 normal.

I explained how this works en mi blog.

+1

Claro, puede crear archivos .CSHTML o .VBHTML, pero la pregunta es si la sintaxis de Razor puede (o será) usar en páginas * .ASPX. – cpuguru

+0

@cpuguru: por supuesto que no. Eso no tendría ningún sentido. No puede (en general) usar dos idiomas que compiten en un archivo. – SLaks

+2

Pensé que Razor era una sintaxis (no un idioma)? – cpuguru

1

Me atrevo a decir que Microsoft lo ha considerado, pero no hay una palabra oficial sobre el tema. Como no se supone que tengas código C# o VB en el archivo ASPX, debes preguntarte sobre el punto de agregar soporte Razor a los formularios web. El código detrás seguiría siendo un archivo de clase (parcial). No pondría Razor allí más de lo que pondría en un archivo de clase en páginas web o MVC. E intercambiar Controles de servidor y todo lo bueno declarativo para Html Helpers elimina uno de los motivos clave para ir a la ruta de formularios web, IMO.

+1

@ SomeControl.ClientID en lugar de <% = SomeControl.ClientID%> parece ser una buena razón para querer utilizar navajas dentro de los formularios web. – Arshia001

1

Esto realmente no es tan difícil de hacer. Trabajando en eso ahora mismo. Grab RazorEngine de CodePlex. Te permite compilar los archivos Razor cshtml/vbhtml en una clase en tiempo de ejecución.

Puede tomar esa clase y usarla desde un control de servidor ASP.Net, dentro de su método Render. Esta es una gran manera de sacar HTML del cuerpo de un control de servidor. Mucho, mucho más limpio.

Ahora, también puede agregar algunos métodos que puede invocar desde Razor. Por ejemplo, agrega algo como RenderChild. Además, puede establecer el Control del servidor como el Modelo disponible para Razor. A continuación, puede invocar en el control del servidor. Incluyendo hacer algo así como tomar uno de sus controles secundarios e invocar Render.

Cuestiones relacionadas