通过电子邮件发送复杂视图,而不会丢失布局

时间:2015-03-18 13:40:21

标签: asp.net-mvc telerik-mvc

我创建了一个Web应用程序,它以仪表板的形式显示少量Telerik图表。还有一些用于动画和事件的JavaScript代码。现在我被问到这个仪表板是否可以通过电子邮件发送。我通过这应该是轻松的任务,但花了3天后我已经没有想法如何做到这一点。 所以我试图使用:

  • MVMailer with PreMailer.Net
  • 制作视图的屏幕截图并将其作为电子邮件发送

您知道如何通过电子邮件发送我的信息中心吗?

1 个答案:

答案 0 :(得分:1)

如果您可以获得最终呈现的HTML代码,您可以发送它,但我发现电子邮件的内容是HTML代码必须非常具体,并且通常使用大量遗留标记。

现代CSS / HTML不会受到支持,也不会像您期望的那样。 JavaScript和动画也将是不行的。

这并不是说您可以从您的网站上说出chart achart b并将其嵌入到设置的电子邮件布局中。您可能遇到的唯一问题是Telerik提供的代码缺乏灵活性。

编辑(如果我不完全理解Telerik的工作原理,请原谅我):

对于HTML作为字符串,也许您可​​以通过控制器本身的HTMLhelper呈现HTML(& JS)。这种方式应该导致最终的HTML代码...... 您可以正常创建控制器方法和视图,但下面的代码将为您提供最终呈现的HTML。

HtmlHelper helper = new HtmlHelper(new ViewContext(ControllerContext, new WebFormView(ControllerContext, "Index"), 
            new ViewDataDictionary(), new TempDataDictionary(), new StringWriter()), new ViewPage());

MvcHtmlString yourViewHTML = System.Web.Mvc.Html.ChildActionExtensions.Action(helper, "TheViewName", new
        {
            param1 = "test" 
        });

然后,您将“yourViewHTML”作为HTML字符串传递给电子邮件。