2011-12-19 28 views
9

Tenemos una solución en ejecución que contiene muchas aplicaciones web forms con la misma página maestra, creamos un proyecto de biblioteca de clase para la página maestra y sus controles y lo referenciamos como dll dentro de cada aplicación de formulario web y asignar la página maestra programáticamenteuse la página maestra de formulario web como página maestra para ASP.Net MVC vistas programáticamente

Ahora agregaremos dos nuevas aplicaciones a nuestra solución pero decidimos usar ASP.Net MVC 3 para compilar estas nuevas aplicaciones.

El problema es que debemos usar la misma página maestra para las nuevas aplicaciones, entonces, ¿cómo podemos configurar la página maestra para nuestras vistas usando el código?

Tenga cuidado para recordar que nuestra página maestra es un proyecto de biblioteca de clase.

Respuesta

3

mirada en este artículo para obtener una visión general sobre la mezcla Webforms con MVC:

Otro proyecto interesante es Zeus cuando se trata de un Webforms mixtos solución/MVC . Contiene ayudantes para usar HtmlHelper y UrlHelper en páginas de Webform.

+0

gracias por los mensajes excelentes pero habla de la página maestra dentro del proyecto web no como proyecto de biblioteca de clase (dll). –

+0

Este artículo habla de compartir una página maestra entre el motor ASPX y Razor Engine. ¿Será este el mismo enfoque para compartir una página Regular ASP.Net Mater con el proyecto ASP.Net MVC 3.0 Razor Engine? – HaBo

+0

@HaBo: No entiendo tu pregunta exactamente. Las publicaciones hablan sobre el uso de una página maestra de Webforms con ASP.NET MVC Razor Views. – Jan

1

Si realmente quiere seguir la ruta de MVC, probablemente debería invertir algo de tiempo para convertir su página maestra en un diseño. Todo lo demás sería un truco/solución.

1

Amir, cargué una muestra de trabajo en here. Pasos,

1) Descargué y convertí una aplicación de muestra de here.

2) Agregue una aplicación MVC 3 en esta solución y agregue la referencia de la biblioteca de clase de la solución anterior.

3) Especifique la página maestra en la vista MVC (en vista, MasterPageFile="~/MasterPageDir/MasterPage.master" o en el controlador return View("Index",masterName: MasterPageVirtualPathProvider.MasterPageFileLocation);).

4) Coloque estas líneas en global.asax.

MasterPageVirtualPathProvider vpp = new MasterPageVirtualPathProvider(); 
HostingEnvironment.RegisterVirtualPathProvider(vpp); 
+0

+1 para su respuesta, pero depende de 'VirtualPathProvider'. desafortunadamente nuestro viejo proyecto no lo usa :(. Parece que tengo que copiar la página maestra Html en mi vista '_layout' y hacer que los estilos e imágenes se refieran a la versión de producción (en línea). –

Cuestiones relacionadas