我在CodeProject上关注文章"Simulate a Windows Service using ASP.NET to run scheduled jobs",在“过期后再次将项目存储在缓存中”部分中,我需要点击我的应用程序页面。
我想用Asp.Net MVC UrlHelper生成它,而不是硬编写url,但是它需要一些我在此上下文中无法访问的实例,因为它不在Controller或View中
可能还是有其他解决方案?
编辑:
悲伤地HttpContext.Current is not accessible in CacheItemRemovedCallBack。 因此,唯一的解决方案似乎是在Application_Start方法中存储所需的值(Url.Host),以便稍后构建完整的URL。答案 0 :(得分:6)
您可以将Url.Action方法与以下参数一起使用:
@Url.Action("Index", "Home", routeValues, Request.Url.Scheme)
或
new UrlHelper(HttpContext.Request.RequestContext).Action("Index", "Home", routeValues, Request.Url.Scheme)
答案 1 :(得分:2)
您可以创建自己的UrlHelper实例。 为此,您需要访问当前的http请求。 这可以使用HttpContext的静态实例来实现:HttpContext.Current:
new UrlHelper(HttpContext.Current.Request.RequestContext).Action("action");
答案 2 :(得分:0)
[https://www.codemag.com/Article/1312081/Rendering-ASP.NET-MVC-Razor-Views-to-String][1]
检查此内容以获取有关如何执行此操作的完整说明