Return Razor-Teilansicht mit JSON (ASP MVC 3)

In MVC 2 mit der regulären Ansichts-Engine könnte ich eine Ascx-Teilansicht als String durch @ zurückgebereturn Json()

Aber mit den neuen Razor .cshtml-Ansichten kann ich nicht herausfinden, wie das geht. Ich bekomme immerType 'ASP.CustomerForm_cshtml' does not inherit from 'System.Web.UI.UserControl'.

Die Teilansicht erbt vonSystem.Web.Mvc.WebViewPage<T> und ein weiterer Fehler erscheint, wenn ich von @ erSystem.Web.UI.UserControl<T> wie der erste fehler sagt.

Möchten Sie darüber nachdenken, wie Sie dieses Problem mit ASP MVC 3 und der Razor View Engine beheben können?

Dies ist meine ControlToString-Funktion:

    private string ControlToString(string controlPath, object model)
    {
        ViewPage page = new ViewPage();
        ViewUserControl ctl = (ViewUserControl)page.LoadControl(controlPath);
        page.Controls.Add(ctl);
        page.ViewData.Model = model;
        page.ViewContext = new ViewContext();
        System.IO.StringWriter writer = new System.IO.StringWriter();
        System.Web.HttpContext.Current.Server.Execute(page, writer, false);
        string outputToReturn = writer.ToString();
        writer.Close();
        //return this.Json(outputToReturn.Trim());
        return outputToReturn.Trim();
    }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage