2016-01-27 27 views
9

sto cercando di migrare un codice esistente da MVC5 a MVC6 e sto avendo difficoltà con questo particolare codice:Razor motore non funziona in ASP.net MVC 5 6

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

Sto ricevendo il seguente errore di runtime :

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) 

Il codice originale che stavo usando in MVC5 è stata presa da here. Se non c'è modo di convertire il codice precedente per funzionare con MVC6, qual è un altro modo elegante di creare modelli di email?

+0

Non menzionare altri post che descrivono un problema simile al tuo, senza spiegare la tua situazione. Inserisci anche il tuo codice e i messaggi di errore che ottieni. Si prega di dare un'occhiata a http://stackoverflow.com/help/how-to-ask e quindi modificare la domanda –

+0

che si desidera migrare da mvc5 a mvc6 o creare un modello di posta elettronica – anand

risposta

2

Apparentemente è stata apportata una modifica nella classe GeneratedClassContext - la proprietà ResolveUrlMethodName non esiste più, quindi lo MissingMethodException. Sembra che anche la classe ParserContext sia stata modificata, poiché l'accesso al gestore di eventi OnError genera la stessa eccezione.

In effetti è il setter della proprietà mancante mancante (scusate l'espressione!), Che, essendo un metodo, causa l'eccezione. Assolutamente preciso ma alquanto fuorviante, a meno che non lo ricordi.

Una domanda simile (e una buona risposta con la soluzione alternativa !) Qui: RazorEngine and MVC 6 beta 7.

Problemi correlati