asp.net-mvc – 如何在Controller外访问RequestContext?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何在Controller外访问RequestContext?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
背景

我试图将业务逻辑从控制器转移到自己的服务中。

调节器

public class AccountController : Controller
{
    private readonly IAccountService _accountService; 

    public AccountController(IAccountService accountService)
    {
        _accountService = accountService;
    }

    ....
}

我正在使用Unity来注入依赖关系。我想在IAccountService的实现中使用Url.GenerateUrl()辅助方法,但Url是一个针对控制器的属性

我看了一下MVC的源码,看看这是怎么做到的,但是它需要我从控制器外部访问RequestContext,我不知道该怎么做。

如何从控制器外部访问RequestContext?如果这不能解决我的问题,我该如何解决我的设置问题?

解决方法

However i’d like to use the Url.GenerateUrl helper methods within my implementation of IAccountService

只需将此信息作为参数传递。例:

public ActionResult Index()
{
    var someUrl = Url.Action("about");
    _accountService.Foo(someUrl);
}

现在您不再需要UrlHelper在您的服务类中。需要与MVC基础架构交互的所有内容都不应放在您的服务类中。他们不应该依赖于任何请求,响应,会话,…控制器负责处理这些对象,并将它们与您的服务类粘合在一起。

猜你在找的asp.Net相关文章