ASP.NET MVC:如何创建可用的UrlHelper实例?

Mar*_*rek 15 asp.net-mvc quartz-scheduler quartz.net

我正在使用quartz.net来安排asp.net mvc应用程序中的常规事件.

计划作业应调用需要UrlHelper实例的服务层脚本(用于根据via urlHelper.Action(..)服务将发送的电子邮件中包含的正确路由()创建URL ).

我不想将链接硬编码到电子邮件中 ​​- 应该使用urlhelper解决它们.

工作:

public class EvaluateRequestsJob : Quartz.IJob
{
    public void Execute(JobExecutionContext context)
    {
        //  where to get a usable urlHelper instance?
        ServiceFactory.GetRequestService(urlHelper).RunEvaluation();
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这不是在MVC管道中运行.没有提供当前请求,代码由Quartz调度程序在定义的时间运行.

如何在指定位置使用UrlHelper实例?

如果无法构建UrlHelper,我看到的另一个选项是通过执行HTTP请求使作业"自调用"控制器操作 - 执行操作时我当然会有一个UrlHelper实例 - 但是这个对我来说似乎有点讨厌.

Dun*_*can 5

如何在这个答案中为UrlHelpler创建一个新的HttpContext :