ピースペース

MVCのMをHTMLに変換してDBに格納する

leave a comment »

って、意味わかんないけど; メールにしたいとか、
とにかく、HTTPレスポンス以外の用途でVierwを使えればな~ なことがある。
で、どうするか?
ズバリの記事がありました。
http://craftycodeblog.com/2010/05/15/asp-net-mvc-render-partial-view-to-string/

この関数はControllerContextを使うのでControllerの中でしか使えない。
複数のControllerで必要になるときは、Baseクラスにしとくとよい。

public class MyControllerBase : Controller
    {
        public string RenderPartialViewToString(string viewName, object model)
        {
            if (string.IsNullOrEmpty(viewName))
                viewName = ControllerContext.RouteData.GetRequiredString("action");

            ViewData.Model = model;

            using (StringWriter sw = new StringWriter())
            {
                ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
                ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
                viewResult.View.Render(viewContext, sw);

                return sw.GetStringBuilder().ToString();
            }
        }
    }

About these ads

Written by nasu38yen

2011年9月1日 at 11:24 PM

カテゴリー: 未分類

Tagged with

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

フォロー

新しい投稿をメールで受信しましょう。

%d人のブロガーが「いいね」をつけました。