Jacek
Jacek

Reputation: 12053

PartialView to string

I want to get in action HTML code which is rendered by PartialView. For example

var partView = PartialView("myView", myModel);
string content =??;

What should I put instead of question marks?

Upvotes: 0

Views: 391

Answers (1)

vborutenko
vborutenko

Reputation: 4443

public static string RenderPartialToString(string controlName, object viewData)
    {
        ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() };

        viewPage.ViewData = new ViewDataDictionary(viewData);
        viewPage.Controls.Add(viewPage.LoadControl(controlName));

        StringBuilder sb = new StringBuilder();
        using (StringWriter sw = new StringWriter(sb))
        {
            using (HtmlTextWriter tw = new HtmlTextWriter(sw))
            {
                viewPage.RenderControl(tw);
            }
        }

        return sb.ToString();
    }
string content = RenderPartialToString("myView", myModel);

Upvotes: 1

Related Questions