Question

Puis-je exécuter un MVC 1 application à l'aide de la MVC 2 assemblées sans accroc?Je comprends que certains outils 3ème partie ont eu des trucs cassés dans MVC 2, mais supposons que je ne les utilise pas tous les autres outils.

Était-ce utile?

La solution

Il y a eu dernières modifications.

Si vous voulez un 1.0 projet à exécution sur la 2.0, il n'a pas l'air de choses dans des endroits différents; si vous devez migrer l'application vers la 2.0..

Voici les modifications qui pourraient éventuellement se rompre (en cours de Prévisualisation 2):

Les changements dans l'Aperçu 2

Les aides maintenant retourner un MvcHtmlString objet

Afin de prendre avantage de la nouvelle HTML de codage de syntaxe de l'expression dans ASP.NET 4, le type de retour de l'HTML helpers est maintenant MvcHtmlString au lieu d'un string.Notez que si vous utilisez ASP.NET MVC 2 et les nouvelles aides à ASP.NET 3.5, vous ne serez pas en mesure de prendre avantage de la version HTML de codage de syntaxe;la nouvelle syntaxe est disponible uniquement lorsque vous exécutez ASP.NET MVC 2 sur ASP.NET 4.

JsonResult maintenant, ne répond qu'aux demandes HTTP POST

Afin d'atténuer JSON détournements qui ont le potentiel de communication de l'information, par défaut, l' JsonResult classe maintenant répond uniquement à l'adresse HTTP POST les demandes.AJAX REÇOIS des appels à l'action des méthodes qui renvoient une JsonResult l'objet doit être modifié pour utiliser des POST à la place.Si nécessaire, vous pouvez remplacer ce comportement en définissant la nouvelle JsonRequestBehavior propriété de JsonResult.Pour plus d'informations sur le potentiel d'exploitation, de voir le post de blog JSON Détournement de Phil Haack blog.

Modèle et ModelType accesseurs de propriété sur ModelBindingContext sont obsolètes

Une nouvelle réglable ModelMetadata la propriété a été ajouté à la ModelBindingContext classe.La nouvelle propriété encapsule à la fois le Modèle et le ModelType les propriétés.Bien que l' Model et ModelType les propriétés sont obsolètes, pour la compatibilité descendante de la propriété des getters encore du travail;ils délèguent à l' ModelMetadata propriété pour récupérer la valeur.

Les changements dans l'Aperçu 1

DefaultControllerFactory changements de classe personnalisés de contrôleur des usines qui en découlent

Cette modification affecte personnalisé contrôleur des usines qui en découlent DefaultControllerFactory .Le DefaultControllerFactory classe a été résolu par la suppression de la RequestContext de la propriété et, au lieu de transmettre la demande instance de contexte pour les méthodes virtuelles protégées GetControllerInstance et GetControllerType.

Personnalisé contrôleur usines sont souvent utilisés pour fournir de l'injection de dépendances pour ASP.NET les applications MVC.

Pour mettre à jour la coutume contrôleur des usines à l'appui ASP.NET MVC 2, changer la signature de la méthode ou des signatures pour correspondre à la nouvelle signatures, et d'utiliser le contexte de la demande paramètre au lieu de la propriété.

“Zone” est désormais réservé route de la valeur de la clé

La chaîne “zone” en Route des valeurs a une signification spéciale dans ASP.NET MVC, de la même manière que “contrôleur” et “action” ne.L'une des conséquences est que si le HTML helpers sont fournis avec un itinéraire valeur dictionnaire contenant “zone”, les assistants de ne plus ajouter de la “zone” dans la chaîne de requête.

Si vous utilisez les Zones de fonctionnalité, assurez-vous de ne pas utiliser {area} dans le cadre de votre parcours à l'URL.

Problèmes Connus

Ajouter Vue de la boîte de dialogue déclenche une exception NullReferenceException lorsque la Créer fortement typées vue case est cochée, une Vue de la sélection de Contenu autre que le “Vide” est sélectionné, et une Vue de données type de classe, le nom est spécifié pour un type qui n'existe pas.Lors de la spécification d'un nom de type, utilisez la liste déroulante pour sélectionner le nom du type ou d'un type entièrement qualifié du nom de type.Pour les types qui n'existent pas, vous devez définir Afficher le Contenu de “Vide”.

Autres conseils

Consultez ce document. Vous apprendrez au sujet des changements de rupture: http://go.microsoft.com/fwlink/?LinkID=157072

Un Gotcha qui m'a mordu est que tous les champs d'un modèle sont désormais toujours validés sur un poste.

Les changements est décrit par Brad Wilson ici .

poste de blog de Steve Anderson décrit le problème et ma solution préférée (à l'aide d'un validateur personnalisé).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top