【问题标题】:How to get rendered source code of an html page from code behind so I can send it in mail如何从后面的代码中获取 html 页面的渲染源代码,以便我可以通过邮件发送它
【发布时间】:2018-12-31 22:25:28
【问题描述】:

我创建了一个带有按钮发送的 aspx 页面。 在该按钮上单击后面的功能代码继续。 我想要的是,当我单击按钮以在变量中获取所有 html 源代码呈现的 aspx 页面时,我可以将其发送到邮件中。我怎样才能得到渲染的html 函数背后代码的源代码。

【问题讨论】:

    标签: asp.net html


    【解决方案1】:

    实际上,我不久前刚刚为此编写了一个方法。它以提供的相对路径获取视图,传入提供的模型,并将视图呈现为字符串。

    public static string RenderViewToString(string relativePathToControl, object viewData)
    {
        ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() };
    
        viewPage.ViewData = new ViewDataDictionary(viewData);
        viewPage.Controls.Add(viewPage.LoadControl(relativePathToControl));
    
        StringBuilder sb = new StringBuilder();
        using (StringWriter sw = new StringWriter(sb))
        {
            using (HtmlTextWriter tw = new HtmlTextWriter(sw))
            {
                viewPage.RenderControl(tw);
            }
        }
    
        return sb.ToString();
    }
    

    您可能需要添加一些 using 语句。

    【讨论】:

    • 我应该补充一点,我只将它用于部分视图 (.ascx)。我不确定它如何用于 .aspx 文件。
    猜你喜欢
    • 2017-06-06
    • 2010-11-24
    • 1970-01-01
    • 2015-10-01
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多