2016-01-27 1 views
9

Je suis en train de migrer du code existant de MVC5 à MVC6 et j'ai du mal à ce code particulier:moteur rasoir ne fonctionne pas dans ASP.net MVC 5 6

Engine.Razor.RunCompile(File.ReadAllText(emailTemplatePath), "emailTemplateKey", typeof (EmailViewModel), emailViewModel); 

Je reçois l'erreur d'exécution suivante :

MissingMethodException: Method not found: "Void Microsoft.AspNet.Razor.CodeGenerators.GeneratedClassContext.set_ResolveUrlMethodName(System.String)". in RazorEngine.Compilation.CompilerServiceBase.CreateHost(Type templateType, Type modelType, String className) 

Le code original que j'utilisais dans MVC5 a été prise de here. S'il n'y a aucun moyen de convertir le code ci-dessus pour travailler avec MVC6, quelle est une autre manière élégante de faire des modèles d'email?

+0

Ne mentionnez pas d'autres articles qui décrivent un problème similaire au vôtre, sans expliquer votre situation. Publiez également votre code et les messages d'erreur que vous obtenez. S'il vous plaît jeter un oeil à http://stackoverflow.com/help/how-to-ask et ensuite modifier votre question –

+0

vous voulez migrer de mvc5 à mvc6 ou créer un modèle d'e-mail – anand

Répondre

2

Apparemment, il y a eu un changement dans la classe GeneratedClassContext - la propriété ResolveUrlMethodName n'existe plus, d'où le MissingMethodException. Il semble que la classe ParserContext ait également changé, car l'accès au gestionnaire d'événements OnError renvoie la même exception.

En fait c'est le setter de la propriété manquante manquant (pardon l'expression!), Qui, étant une méthode, provoque l'exception. Absolument précis mais quelque peu trompeur, à moins que vous vous en souveniez.

Tout à fait une question similaire (et une bonne réponse avec solution alternative!) Ici: RazorEngine and MVC 6 beta 7.