2009-10-21 14 views
13

Tengo un proyecto de WebForms existente al que estoy agregando páginas MVC. Creé un proyecto MVC y copié las guías de tipo de proyecto."Agregar controlador"/"Agregar vista" en una aplicación híbrida MVC/WebForms ASP.NET

Funciona bien, pero no puede obtener Visual Studio para visualizar el "Add Controller" o "Añadir Ver" asistentes en mis controladores y vistas directorios (no están /Controllers y /Views, están en /Foo/Controllers y /Foo/Views).

¿Es posible habilitar los asistentes?

+0

Probablemente y buena suerte, pero siempre he encontrado que esos son prácticamente inútiles, ya que las vistas y los controladores no son muy diferentes en absoluto de las páginas y clases regulares de aspx. – Will

+0

@Will, si agrega esto como respuesta, lo acepto, también me di cuenta de que me sirven también los fragmentos de código – orip

+0

¿Es Foo un simple directorio o área? –

Respuesta

2

He renunciado a esto. En cambio, tengo algunos fragmentos básicos de Resharper. Lástima que esto no es configurable.

+0

Puedes por favor dime de qué fragmentos estás hablando aquí? Porque los andamios todavía no funcionarán ahora, ¿verdad? –

+0

@RobertKoritnik nada sofisticado, solo fragmentos que me permiten poner el nombre del controlador/vista y tener el nombre del modelo de vista, etc. derivados según mi convención, p. Ej. 'LoginView' ->' LoginViewModel'. – orip

+0

-1 ¿Cómo puede alguien elegir esto como la buena respuesta? – JotaBe

1

Quizás podría habilitarlos, pero ¿para qué molestarse? Esos asistentes están disponibles a solo dos clics de distancia: haga clic con el botón derecho en la carpeta, haga clic en Agregar - Nuevo elemento, luego seleccione "Página de vista MVC" o "Página de controlador MVC". No están en el menú contextual, pero todavía están bastante cerca ... :)

+1

(1) No pude hacer que las plantillas aparezcan en "Agregar -> Nuevo elemento" en este proyecto [No sé por qué], y (2) la plantilla "Página de vista MVC" en "Agregar -> Nuevo elemento" "no me deja elegir un modelo de vista tipado estáticamente como lo hace el asistente". – orip

+0

@orip: aunque elige las plantillas personalizadas de los controladores (si las pones en la carpeta 'CodeTemplates') realmente no ayuda demasiado con las vistas, especialmente si utilizas las que tienen scaffolded ... –

6

Para obtener la compatibilidad total del diseñador para proyectos híbridos, debe agregar MVC "tipo de proyecto" en el archivo del proyecto.

Abra el archivo de proyecto y reemplazar ProjectTypeGuids etiqueta con

<ProjectTypeGuids>{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 

Después de que se pueden ver nuevos menús de contexto ("Add View", "Añadir Zona", "Add Controller", etc.) en su "viejo" proyecto

funciona tanto para MVC y MVC 2.

+0

Tu respuesta me ayudó, ¡gracias! –

+0

-1: OP ya agregó esos GUID a los que se refiere. Su pregunta es cómo poner esos asistentes en las carpetas, es decir. 'Foo \ Controllers' y' Foo \ Views' y no a los que están en la raíz de la aplicación ... –

11

para MVC 3 ASP.NET, ProjectTypeGuids debe ser similar a la siguiente:

<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 

(Ver Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3)

+2

-1: @orip dijo que ya había cambiado los GUID. Las guías no son un problema aquí. Su pregunta es: ** Cómo hacer que esos menús contextuales aparezcan en diferentes carpetas y no directamente en 'Controller' y' Views' **. –

2

Aquí es el GUID para MVC3:

{E53F8FEA-EAE0-44A6-8774-FFD645390401}; 

descargar su proyecto, archivo csproj abierta y agregar el GUID para el inicio de la etiqueta. sin espacios adicionales ni saltos de línea, luego vuelva a cargar el proyecto. Al igual que este

<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 
5

para MVC 4:

<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 
1

se resuelva este problema. Tengo un proyecto híbrido y tuve el mismo problema. No se pudo ver "Agregar vista/Agregar controlador" en el menú contextual. Ahora está resuelto. Por favor, consulte el siguiente enlace Context menu to Add Controller/View missing

Cuestiones relacionadas