0

重複の可能性:
MVC3 Razorで、アクション内のレンダリングされたビューのhtmlを取得するにはどうすればよいですか?

さて、これがシナリオです。適切にフォーマットされた部分ビューを返すアクション結果があります。別のアクション結果からトリガーされた電子メールでまったく同じHTML結果を送信したい。これを行うにはいくつかの方法があることを私は理解しています。コントローラまたはモデルでHTML文字列をフォーマットするのに永遠に時間がかかります。ディスクなどからファイルの内容を読み取ることもできます。現在、これを行っていますが、コントローラーでこれを実行するためのより適切な方法が必要です。

// MAKE AN HTTP REQUEST FROM CONTROLLER A AND GET THE DETAILS FROM ANOTER CONTROLLER/ACTION
WebRequest req = WebRequest.Create("UrlToAnotherActionResult");
req.PreAuthenticate = true;
WebResponse resp = req.GetResponse();
StreamReader reader = new StreamReader(resp.GetResponseStream());
var html = reader.ReadToEnd().Trim();

次に、htmlの結果を取得し、それを電子メールの本文として使用します。

これよりも別のアクションから結果を取得するためのよりエレガントな方法はありますか?

4

1 に答える 1

0

ここで定義されているRenderPartialViewToString機能を使用しています。

http://craftycodeblog.com/2010/05/15/asp-net-mvc-render-partial-view-to-string/

それはかなりうまくいくようです。

于 2012-10-02T01:51:19.603 に答える