1. ホーム
  2. asp.net-mvc

[解決済み] MVC3 Razorで、アクション内のレンダリングされたビューのhtmlを取得するにはどうしたらいいですか?

2023-04-12 21:33:48

質問

アクション内のビューの生成されたhtmlを取得する方法をご存知の方はいらっしゃいますか?

こんな感じなんでしょうか。

public ActionResult Do()
{
    var html = RenderView("hello", model);
...
}

どのように解決するのですか?

というクラスで静的メソッドを使用しています。 Utilities.Common 私はビューをJSONオブジェクトのプロパティとして常にクライアントに渡しているので、それらを文字列にレンダリングする必要がありました。さあ、どうぞ。

public static string RenderPartialViewToString(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 sw.ToString();
    }
}

これはフル・ビューでもパーシャル・ビューでも動作します。 ViewEngines.Engines.FindPartialViewViewEngines.Engines.FindView .