2009-05-12 21 views
5

estoy tratando de crear una vista fuertemente tipada con Visual Studio 2008. Puedo hacer clic con el botón derecho en una acción del controlador y elegir: Agregar vista ... En el siguiente cuadro de diálogo, aparece la opción 'Crear una vista fuertemente tipada' '. Si selecciono esta opción, puedo seleccionar una lista de clases que están en mi proyecto actual.ASP.NET MVC - ¿Cómo crear una vista fuertemente tipada de las clases en la biblioteca de clases referenciada?

Sin embargo, no puedo seleccionar la clase que necesito que está en una biblioteca de clases a la que hice referencia.

  • classlibrary es un conjunto fuertemente tipado que se carga en el GAC.
  • Obviamente se hace referencia a la biblioteca en el proyecto.
  • He añadido un complemento < namespace = "nombre"/> en web.config
  • He reconstruido varias veces, y se reinicia VS
  • ClassLibrary no tiene ningún problema ...

¿Alguna sugerencia?

+0

¿Alguna solución? por favor actualiza aquí. –

Respuesta

3

Simplemente cree su vista con cualquiera de las clases de modelo, edite manualmente ASPX y reemplace la clase de modelo por la que desee. Probablemente la ventana de diálogo no sea lo suficientemente inteligente.

Pero en mi opinión personal, el uso de clases "externas" como sus modelos es muy incorrecto.

Todos los modelos, vistas y controladores deben estar aquí, directamente en su proyecto. Luego pueden usar internamente lo que necesitan donde sea que esté.

+0

Acepto que no debo usar clases externas. Sin embargo, esto debería funcionar. Es una biblioteca de clases de solo lectura que tiene colecciones y entidades integradas. Me gusta su sugerencia de reemplazar manualmente, pero esto no funciona, me sale un error de compilación probablemente porque la herencia está en mal estado: 'Título' no es miembro de 'ASP.views_home_list_aspx' – Ropstah

+0

El error que recibí no está relacionado con mi pregunta. Tu sugerencia funciona ¡Gracias! – Ropstah

0

No estoy seguro de si mis propias clases aparecen en la lista o no, generalmente las escribo (comenzando desde el espacio de nombres raíz). ¿Qué sucede si intenta escribir, por ejemplo, MyRootNamespace.MyClassLibrary.MyNamespace.AnotherNamespace.TheClass en el cuadro de texto y hace clic en Aceptar?

+0

Puedo escribir manualmente el nombre de clase, incluidos los espacios de nombres, sin embargo, el menú desplegable del contenido de la vista se deshabilita ... – Ropstah

0

puedo escribir manualmente el nombre de clase incluyendo espacios de nombres, sin embargo, el contenido de la vista desplegable es entonces desactivada ... - ropstah 12 de mayo a 13:31

estoy teniendo el mismo problema con mis clases de datos creadas a medida. Aparecen en el menú desplegable "Ver clase de datos", pero el menú desplegable "Ver contenido" está desactivado. Supongo que mis clases necesitan implementar alguna interfaz. No estoy seguro de cuál.

+0

Es posible que desee comprobar esto: http://msdn.microsoft.com/en-us/library/aa697427(VS.80) .aspx. Una herramienta de ORM muy buena es Entityspaces, www.entityspaces.com – Ropstah

7

Este es sin duda demasiado tarde para responder a esta pregunta, pero para los futuros lectores:

me di cuenta de que muy a menudo tengo que BUILD-> solución limpia y luego a BUILD-> reconstruir solución y aparecen mágicamente las clases (como debe ser)

+0

Aunque no estoy seguro de que esta respuesta en particular resuelva la pregunta planteada, resuelve mi problema más relacionado, ¡así que gracias! – lassombra

+0

@lassombra ¡Eres bienvenido! –

1

este fue publicada hace mucho tiempo, pero mi solución podría ayudar a alguien ....

solo tenía este mismo problema y me encontré con que si tuviera "Controller" como parte de la clase name - Tenía un "DoorController" - No pude agregarlo a través de la selección de vista fuertemente tipada. También me causó otros problemas en asp mvc.

Esto también puede aplicarse a "Modelo" y "vista"? Intenta cambiar el nombre de clase de tu modelo para solucionar este problema.

Cuestiones relacionadas