我在我的控制器中有一个ActionResult,我想发送一封HTML邮件,该邮件的正文由一个视图生成。而不是在我的控制器中有2个actionresults方法,我可以在传递模型时获得视图的结果并避免将其发送到浏览器?从.Net MVC View获取HTML而不实际在浏览器中呈现视图?
回答
MvcMailer是一个精彩的小项目,支持使用MVC视图生成电子邮件。它可作为NuGet包使用。
为了使视图以字符串而不是响应使用此代码(relativePath
点到视图文件):
var content = string.Empty;
var view = ViewEngines.Engines.FindView(ControllerContext, relativePath, null);
using (var writer = new StringWriter())
{
var context = new ViewContext(ControllerContext, view.View, ViewData, TempData, writer);
view.View.Render(context, writer);
writer.Flush();
content = writer.ToString();
}
Api.ControllerContext是System.Web.Http.Controllers.HttpControllerContext和FindView需要System.Web.Mvc.ControllerContext ... – xster 2012-05-08 21:19:52
看看开源Postal project它是可用的查看NuGet。
Postal允许您使用常规MVC视图创建电子邮件。
安德鲁·戴维完成使用邮政在Generating email with View Engines介绍在mvcConf 2
或可替代this blog post显示你一个简单的方法。
我相信MVC 4尚未支持Postal – xster 2012-05-08 21:02:54
- 1. 在浏览器中呈现视图而不加载 - cakephp
- 2. 在MVC中,视图最终是否将HTML呈现回Controller,或视图是否将HTML呈现给浏览器?
- 3. 终端说视图已经呈现,但它并不实际在浏览器中呈现?
- 4. HTML实体在浏览器中呈现的方式不同
- 5. C#MVC呈现在浏览器
- 6. 浏览器不呈现在Grails Webflows中的视图文件
- 7. 浏览器呈现不同
- 8. 浏览器呈现代码而不是页面
- 9. PHP不会在浏览器中呈现
- 10. 使用Selenium和Java获取浏览器呈现的HTML
- 11. 实现照片浏览器视图
- 12. 从控制器获取视图的HTML - .NET MVC
- 13. 从浏览器获取'html'类型而不是'image'
- 14. Cfm页面被下载而不是在浏览器中呈现
- 15. 在PHP中获取实际的浏览器URL
- 16. 为什么我的d3可视化在控制台中呈现,而不是在浏览器中呈现?
- 17. 控制不在MVC视图中呈现
- 18. InAppBrowser视图与ios中的实际浏览器视图不匹配
- 19. HTML实体不会在浏览器中正确呈现XSLT变换后
- 20. asp.net webforms在浏览器上实际显示视图状态
- 21. 在浏览器中呈现2D AutoCAD图片的想法
- 22. Django视图不能在HTML中呈现
- 23. 图像名称'%'在它不在浏览器中呈现
- 24. 将呈现的图像呈现给Rails中的浏览器
- 25. 从Cefsharp浏览器获取HTML
- 26. Server.Transfer无法呈现MVC-View
- 27. 在浏览器中打开SVG呈现XML代码而不是图像
- 28. 在MVC3中获取由视图呈现的HTML
- 29. Google地图更改不会在浏览器中呈现
- 30. 谷歌浏览器图标呈现
的[渲染视图,作为字符串](HTTP可能重复:// stackoverflow.com/questions/483091/render-a-view-as-a-string) – bzlm 2011-03-03 14:20:56
我最终使用这个解决方案:http://persistall.com/archive/2007/12/21/asp.net-mvc- --renderview-testing-workaround.aspx – Slee 2011-03-03 14:24:52