asp.net-mvc – 可以使用ASP.Net MVC Razor视图来生成格式很好的
发布时间:2020-12-16 00:24:04 所属栏目:asp.Net 来源:网络整理
导读:我想利用Razor View的模型绑定/渲染功能来生成我从ASP.NET MVC应用程序发送的电子邮件的HTML正文内容。 有没有办法将视图呈现为字符串,而不是将其作为GET请求的ActionResult返回? 为了说明我正在寻找将会做以下事情的东西: public ActionResult SendEmail
我想利用Razor View的模型绑定/渲染功能来生成我从ASP.NET MVC应用程序发送的电子邮件的HTML正文内容。
有没有办法将视图呈现为字符串,而不是将其作为GET请求的ActionResult返回? 为了说明我正在寻找将会做以下事情的东西: public ActionResult SendEmail(int id) { EmailDetailsViewModel emailDetails = EmailDetailsViewModel().CreateEmailDetails(id); // THIS IS WHERE I NEED HELP... // I want to pass my ViewModel (emailDetails) to my View (EmailBodyRazorView) but instead of Rending that to the Response stream I want to capture the output and pass it to an email client. string htmlEmailBody = View("EmailBodyRazorView",emailDetails).ToString(); // Once I have the htmlEmail body I'm good to go. I've got a utilityt that will send the email for me. MyEmailUtility.SmtpSendEmail("stevejobs@apple.com","Email Subject",htmlEmailBody); // Redirect another Action that will return a page to the user confirming the email was sent. return RedirectToAction("ConfirmationEmailWasSent"); } 解决方法
如果您只需要将视图呈现为字符串,请尝试以下操作:
public string ToHtml(string viewToRender,ViewDataDictionary viewData,ControllerContext controllerContext) { var result = ViewEngines.Engines.FindView(controllerContext,viewToRender,null); StringWriter output; using (output = new StringWriter()) { var viewContext = new ViewContext(controllerContext,result.View,viewData,controllerContext.Controller.TempData,output); result.View.Render(viewContext,output); result.ViewEngine.ReleaseView(controllerContext,result.View); } return output.ToString(); } 您需要从控制器操作中传递视图的名称以及ViewData和ControllerContext。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- entity-framework – Entityframework Mapping问题
- asp.net-mvc – 从MVC Controller导出到CSV,View在页面上显
- 对VS 2019中ASP.NET Core项目解决:The term 'Add-Migr
- 在ASP.Net MVC中将JSON转换为C#类
- ASP.NET应用程序池回收问题
- asp.net signalR 专题—— 第一篇 你需要好好掌握的实时通
- asp.net-mvc – ASP.NET MVC路由中未传递的参数值
- asp.net – Microsoft Jet数据库引擎找不到对象’Sheet1 $’
- 有标签的ASP.NET WebControl吗?
- 如何使用ASP.NET标识使声明无效?
推荐文章
站长推荐
- asp.net-mvc – 无法获得有效的Unity Session Li
- HttpHandler无法在ASP.NET MVC3 Web应用程序中工
- asp.net-mvc – 如何实现在jqgrid搜索?
- asp.net-mvc – ASP.net MVC 4 WebApi中的嵌套资
- 什么是ASP.NET-MVC 5.1中的ManageController.cs及
- asp.net-mvc – 构建视图模型的最佳方法是什么?
- asp.net – 使用Roslyn动态编译控制器
- iis-7 – IIS重置会强制缓存项目重新发送吗?
- asp.net-mvc-4 – “你没有权限查看这个目录或页
- asp.net-web-api – 无法在Mono / xsp4中加载类型
热点阅读