背景
我正在尝试将业务逻辑从控制器移至它们自己的服务中。
控制器
public class AccountController : Controller
{
private readonly IAccountService _accountService;
public AccountController(IAccountService accountService)
{
_accountService = accountService;
}
....
}
我正在使用 Unity 来注入依赖项。我想使用Url.GenerateUrl()
实现中的辅助方法IAccountService
but Url
是针对控制者的财产。
我查看了 MVC 源代码以了解这是如何完成的,但它需要我访问RequestContext
从控制器外部,我不知道该怎么做。
Question
如何从控制器外部访问 RequestContext?如果这不能解决我的问题,那么根据我的设置如何解决问题?
这可能不太正确,因为我目前无法测试它,但我认为您可以在 .NET 4+ 中执行以下操作:
using System.Web;
using System.Web.Mvc;
// ...
var helper = new UrlHelper(HttpContext.Current.Request.RequestContext);
string url = helper.GenerateUrl(/* ... */);
It might将上下文从控制器传递到您的更有意义IAccountService
实现而不是直接从HttpContext.Current http://msdn.microsoft.com/en-us/library/system.web.httpcontext.current.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)