Erforderliche Abhängigkeiten für Resolver oder ServiceProvider für die Verwendung von ICompositeViewEngine

Ich versuche, ICompositeViewEngine in ASP.NET Core MVC zu verwenden, um ViewEngine durch System.Web.Mvc zu ersetzen, da es in .NET Core nicht mehr verfügbar ist. Im Allgemeinen versuche ich in diesem Projekt, ein Webformular von ASP.NET auf ASP.NET Core zu migrieren.

Ich habe die folgende Lösung gefunden:Wo befinden sich die Eigenschaften ControllerContext und ViewEngines in MVC 6 Controller? und ich glaube, dass dies mein Problem lösen kann. Ich habe auch eine ähnliche Engine-Erstellung mit ServiceProvider in einer Github-Frage gefunden:https: //github.com/aspnet/Mvc/issues/309

Ich bin mir jedoch nicht sicher, welche Abhängigkeiten oder Frameworks mir fehlen könnten, da ich mit .NET sehr neu bin. Ich habe folgende Namespaces:

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.Extensions.DependencyInjection;

Das könnte meiner Meinung nach mit meinem Problem zusammenhängen.

ein ursprünglicher Code lautet:

    public static string RenderPartialToString(Controller controller, string viewName, object model)
    {
        controller.ViewData.Model = model;

        using (StringWriter sw = new StringWriter())
        {
            ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
            ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
            viewResult.View.Render(viewContext, sw);

            return "document.write('" + sw.GetStringBuilder().Replace('\n', ' ').Replace('\r', ' ').Replace("'","\\'").ToString() + "');";
        }
    }

Und jetzt versuche ich, eine der folgenden Optionen zu verwenden:

 var engine = Resolver.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
 var engine2 = IServiceProvider.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;

Bin ich auf dem richtigen Weg, um dies zu beheben? Gibt es eine einfachere Möglichkeit, System.Web.Mvc ViewEngines in .NET Core zu ersetzen? Was brauche ich, um " existiert im aktuellen Kontext nicht "Fehler für Resolver und / oder ServiceProvider?

Vielen Dank. Ich hoffe, dass ich die Richtlinien für Fragen befolgen konnte.

Bearbeiten: Bitte lassen Sie mich wissen, ob ich für diese Frage etwas anderes aus meinem Code einfügen sollte. Ich lese gerade über Abhängigkeitsinjektion, um die Situation besser zu verstehen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage