我可以从ActionResult中调用ActionResult并使用返回的HTML

时间:2012-10-02 01:30:55

标签: c# asp.net-mvc actionresult

  

可能重复:
  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的结果?

1 个答案:

答案 0 :(得分:0)

我一直在使用此处定义的RenderPartialViewToString功能:

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

它看起来效果很好。

相关问题