Csharp/C#教程:如何将Razor视图转换为字符串?分享


如何将Razor视图转换为字符串?

我想将我的Razor视图用作发送电子邮件的某种模板,因此我想在视图中“保存”我的模板,将其作为字符串读入控制器,执行一些必要的替换,然后发送它。

我的解决方案有效:我的模板作为HTML页面托管在某处,但我想把它放到我的应用程序中(即在我的视图中)。 我不知道如何在我的控制器中读取视图作为字符串。

我使用以下内容。 如果您有基础控制器,请将其放在基础控制器上,这样您就可以在所有控制器中访问它。

public static string RenderPartialToString(Controller controller, string viewName, object model) { controller.ViewData.Model = model; using (StringWriter sw = new StringWriter()) { ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName); ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw); viewResult.View.Render(viewContext, sw); return sw.GetStringBuilder().ToString(); } } 

看看RazorEngine库,它可以完全满足您的需求。 我以前用它来制作电子邮件模板,效果很好。

你可以这样做:

上述就是C#学习教程:如何将Razor视图转换为字符串?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

 // Read in your template from anywhere (database, file system, etc.) var bodyTemplate = GetEmailBodyTemplate(); // Substitute variables using Razor var model = new { Name = "John Doe", OtherVar = "Hello!" }; var emailBody = Razor.Parse(bodytemplate, model); // Send email SendEmail(address, emailBody); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/949193.html

(0)
上一篇 2021年11月17日
下一篇 2021年11月17日

精彩推荐