0

可能重复:
在 MVC3 Razor 中,如何在动作中获取渲染视图的 html?

好的,这是场景。我有一个返回格式良好的局部视图的操作结果。我希望在由另一个操作结果触发的电子邮件中发送完全相同的 HTML 结果。我意识到有很多方法可以做到这一点。在 Controller 或 Model 中格式化 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 回答