【问题标题】:Render a view for an email in Asp.Net MVC 2 in a background service在后台服务中渲染 Asp.Net MVC 2 中的电子邮件视图
【发布时间】:2010-02-03 13:11:14
【问题描述】:

我需要渲染一个视图以使用 Asp.Net MVC 2 作为电子邮件发送。

使用新的 Html.Partial 方法可以轻松地将视图呈现为字符串,然后将其作为电子邮件发送,只要您从控制器或视图内部进行操作(您可以在其中访问 html 帮助程序或控制器上下文)

我需要能够使用后台服务发送延迟的电子邮件。我想以与在控制器中相同的方式呈现它们,但我无法访问 Html Helper 或控制器上下文。

我尝试使用 ViewPage 类创建自己的方法,并调用它的渲染方法 myslef 并传入字符串编写器。问题是我没有 html 助手的视图上下文,所以我只能渲染不使用 html 助手或 url 助手的视图。

任何想法。

谢谢

【问题讨论】:

    标签: c# asp.net-mvc renderpartial


    【解决方案1】:
    【解决方案2】:
    ThreadPool.RegisterWaitForSingleObject(new ManualResetEvent(false), 
        (state, timeout) => 
        {
            var context = (HttpContext)state;
            // Use the context here
        }, HttpContext, TimeSpan.FromSeconds(10), true);
    

    【讨论】:

    • 获取 http 上下文不是问题。我需要控制器上下文来创建一个 html 帮助器对象或尝试自己呈现一个 ViewPage
    • 控制器上下文不会帮助您实例化 HtmlHelper,因为它需要控制器中不可用的 ViewContext。您可以使用来自 MvcContrib (brightmix.com/blog/…) 的块渲染器。
    • 如果我有控制器上下文,我可以创建一个视图上下文。我以前做过这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多