2

私はこの非常に役立つ投稿を読みました:MVC3の画面ではなく文字列にhtmlをレンダリングする方法。

コントローラーでそれを実行する関数を作成しました。この関数をサービスとして提供できるように、別のプロジェクトのクラスからこのメソッドを呼び出せるようにしたいと思います。コードは次のようになります。

 using (var sw = new StringWriter())
        {
            var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
            var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
            viewResult.View.Render(viewContext, sw);
            viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
            return sw.GetStringBuilder().ToString();
        }

このクラスをIIS経由ではなく、直接呼び出したいのですが。ただし、ControllerContextはnullです。どういうわけかディスク上のビューを指定できますか?

4

2 に答える 2

0

http://msdn.microsoft.com/en-us/library/system.web.mvc.viewengineresult(v=vs.108

FindPartialViewを呼び出す代わりに、場所のリストを提供することにより、ViewEngineResultを作成できます。

于 2012-07-18T12:35:04.107 に答える
0

MVCのほとんどのコントロールには、というプロパティがあります"ToHtmlString();"

于 2012-07-18T12:32:22.857 に答える