在 RC1 中,可以将IUrlHelper注入服务中(在启动类中添加services.AddMvc())
In RC1, IUrlHelper could be injected in services (with services.AddMvc() in startup class)
这在 RC2 中不再起作用.有人知道如何在 RC2 中做到这一点,因为刚刚更新UrlHelper时需要一个ActionContext对象.不知道如何在控制器之外获取该信息.
This doesn't work anymore in RC2. Does anybody know how to do it in RC2 as just newing up a UrlHelper requires an ActionContext object. Don't know how to get that outside a controller.
推荐答案对于 ASP.NET Core RC2 ,有一个在github存储库上发布的问题.代替注入IUrlHelper,而是使用IUrlHelperFactory.听起来您还需要注入IActionContextAccessor,因为Controller不再具有公共属性ActionContext.
For ASP.NET Core RC2 there is an issue for this on the github repo. Instead of injecting the IUrlHelper, take an IUrlHelperFactory. It also sounds like you'd need the IActionContextAccessor injected as a Controller no longer has a public property ActionContext.
注册依赖项:
services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();然后依靠它:
public SomeService(IUrlHelperFactory urlHelperFactory, IActionContextAccessor actionContextAccessor) { var urlHelper = urlHelperFactory.GetUrlHelper(actionContextAccessor.ActionContext); }然后根据需要使用它.
更多推荐
在ASP.NET Core中注入IUrlHelper
发布评论