可能重复:
In MVC3 Razor, how do I get the html of a rendered view inside an action?
好的,这是场景。我有一个Action Result,它返回格式正确的Partial View。我希望在从另一个操作结果触发的电子邮件中发送完全相同的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结果并将其用作我的电子邮件正文。
是否有更优雅的方法来获取另一个Action的结果?
答案 0 :(得分:0)
我一直在使用此处定义的RenderPartialViewToString功能:
http://craftycodeblog.com/2010/05/15/asp-net-mvc-render-partial-view-to-string/
它看起来效果很好。