Pregunta

¿Puedo ejecutar una aplicación MVC 1 con los 2 montajes MVC sin ningún problema? Entiendo que algunas herramientas de 3 ª parte han tenido cosas rotas en MVC 2, pero vamos a suponer que no estoy usando los otras herramientas.

¿Fue útil?

Solución

Ha habido cambios de ruptura .

Si desea un proyecto 1.0 se ejecute en 2.0, que tiene un aspecto de las cosas en diferentes lugares; por lo que tendría que migrar la aplicación a 2,0. .

Estos son los cambios que podrían posiblemente 'break' (vigente a partir de Preview 2):

Cambios en la vista previa 2

Ayudantes ahora devuelven un objeto MvcHtmlString

A fin de tomar ventaja de la nueva sintaxis expresión HTML-codificación en ASP.NET 4, el tipo de retorno de los ayudantes HTML está ahora MvcHtmlString en lugar de un string. Tenga en cuenta que si utiliza ASP.NET MVC 2 y los nuevos ayudantes con ASP.NET 3.5, usted no será capaz de tomar ventaja de la sintaxis HTML codificación; la nueva sintaxis sólo está disponible cuando se ejecuta ASP.NET MVC 2 en ASP.NET 4.

JsonResult ahora sólo responde a las peticiones HTTP POST

Con el fin de mitigar los ataques de secuestro JSON que tienen el potencial para la divulgación de información, de manera predeterminada, la clase JsonResult ahora sólo responde a las peticiones HTTP POST. AJAX recibir llamadas a métodos de acción que devuelven un objeto JsonResult se debe cambiar para utilizar el poste en su lugar. Si es necesario, puede anular este comportamiento mediante el establecimiento de la nueva propiedad de JsonRequestBehavior JsonResult. Para obtener más información sobre el potencial de explotar, consulte la entrada de blog JSON Secuestro en el blog de Phil Haack.

modelo y de propiedad ModelType set en ModelBindingContext son obsoletos

Una nueva propiedad ModelMetadata ajustable ha sido agregado a la clase ModelBindingContext. La nueva propiedad encapsula tanto el modelo y las propiedades ModelType. Aunque las propiedades Model y ModelType son obsoletas, para mantener la compatibilidad de los captadores de propiedad siguen funcionando; delegan a la propiedad ModelMetadata para recuperar el valor.

Cambios en la vista previa 1

cambios de clase DefaultControllerFactory rompen las fábricas de controladores personalizados que se derivan de ella

Este cambio afecta a las fábricas de controladores personalizados que se derivan de DefaultControllerFactory. La clase DefaultControllerFactory se fijó mediante la eliminación de la propiedad RequestContext y en lugar de pasar la instancia de solicitud de contexto a los métodos GetControllerInstance y GetControllerType virtual protegida.

fábricas controlador personalizado se utilizan a menudo para proporcionar la inyección de dependencia para aplicaciones ASP.NET MVC.

Para actualizar las fábricas controlador personalizado para apoyar ASP.NET MVC 2, cambie la firma del método o firmas para que coincida con las nuevas firmas, y utilizar el parámetro de solicitud de contexto en lugar de la propiedad.

“Área” es ahora una ruta clave-valor reservado

El “área” cadena de valores de ruta ahora tiene un significado especial en ASP.NET MVC, de la misma manera que “controlador” y “acción” hacen. Una implicación es que si ayudantes HTML se suministran con un diccionario que contiene ruta-valor “zona”, los ayudantes ya no añadir “zona” en la cadena de consulta.

Si está utilizando la función de las zonas, asegúrese de no utilizar {area} como parte de la URL de su ruta.

Problemas conocidos

El cuadro de diálogo Vista Agregar lanza una NullReferenceException cuando se marca la casilla de verificación vista inflexible de tipos Crea, una selección Ver contenido distinto de “vacío” está seleccionado, y un nombre de tipo de clase Vista de datos se especifica para un tipo que sí existe . Al especificar un nombre de tipo, o bien utilice la lista desplegable para seleccionar el nombre del tipo o escriba el nombre del tipo totalmente cualificado. Para los tipos que no existen, debe configurar la pantalla de contenido a “vacío”.

Otros consejos

Salida este documento. Usted aprenderá acerca de los cambios de ruptura: http://go.microsoft.com/fwlink/?LinkID=157072

Uno de gotcha que me ha mordido es que todos los campos de un modelo están siempre validados en un poste.

Los cambios se describe mediante Brad Wilson aquí .

entrada del blog de Steve Anderson describe el problema y mi solución favorita (usando un validador personalizado).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top