2016-01-27 12 views
9

Próbuję przenieść niektóre istniejący kod z MVC5 do MVC6 i mam trudności z tego konkretnego kodu:Razor Silnik nie pracuje w ASP.NET MVC 5 6

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

Otrzymuję następujący błąd 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) 

Oryginalny kod używałem w MVC5 została podjęta z here. Jeśli nie ma sposobu na konwersję powyższego kodu do pracy z MVC6, co jest kolejnym eleganckim sposobem tworzenia szablonów wiadomości e-mail?

+0

Nie podawaj innych postów opisujących problem podobny do twojego, bez wyjaśnienia swojej sytuacji. Napisz także swój kod i otrzymane komunikaty o błędach. Proszę spojrzeć na http://stackoverflow.com/help/how-to-ask, a następnie edytować pytanie –

+0

, które chcesz przenieść z mvc5 do mvc6 lub utworzyć szablon wiadomości e-mail – anand

Odpowiedz

2

Najwyraźniej nastąpiła zmiana w klasie GeneratedClassContext - właściwość ResolveUrlMethodName już nie istnieje, stąd nazwa MissingMethodException. Wygląda na to, że klasa też się zmieniła, ponieważ dostęp do obsługi zdarzeń OnError powoduje zgłoszenie tego samego wyjątku.

W rzeczywistości jest to ustawnik brakującej właściwości (wybacz wyrażenie!), Który jako metoda powoduje wyjątek. Absolutnie dokładne, ale nieco mylące, chyba że sobie to przypomnisz.

Całkiem podobne pytanie (i dobra odpowiedź z alternatywne rozwiązanie!) Tutaj: RazorEngine and MVC 6 beta 7.

Powiązane problemy