加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:30:31 所属栏目:asp.Net 来源:网络整理
导读:背景 我试图将业务逻辑从控制器转移到自己的服务中。 调节器 public class AccountController : Controller{ private readonly IAccountService _accountService; public AccountController(IAccountService accountService) { _accountService = accountSer
背景

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

调节器

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读