How to create new HttpResponse instance and context in Asp.Net Core 1.0

3.1k Views Asked by At

I have the following code in my old MVC project. I am trying to migrate it to Asp.Net Core. Anyone have the idea about how a new HttpResponse so that I can migrate the following code ?

 private string RenderActionResultToString(ActionResult result)
        {
            // Create memory writer.
            var sb = new System.Text.StringBuilder();
            var memWriter = new System.IO.StringWriter(sb);

        // Create fake http context to render the view.
        var fakeResponse = new HttpResponse(memWriter);
        var fakeContext = new HttpContext(System.Web.HttpContext.Current.Request,
            fakeResponse);
        var fakeControllerContext = new ControllerContext(
            new HttpContextWrapper(fakeContext),
            this.ControllerContext.RouteData,
            this.ControllerContext.Controller);
        var oldContext = System.Web.HttpContext.Current;
        System.Web.HttpContext.Current = fakeContext;

        // Render the view.
        result.ExecuteResult(fakeControllerContext);

        // Restore old context.
        System.Web.HttpContext.Current = oldContext;

        // Flush memory and return output.
        memWriter.Flush();
        return sb.ToString();
    }`
1

There are 1 best solutions below

0
On

I think the analogous code for what you are trying to do can be found in the answer to this StackOverflow Question: Render Razor view to string in ASP.NET 5