我可以从HomeController中的另一个控制器获取一个简单的bool值吗?

时间:2009-12-01 22:29:16

标签: asp.net-mvc model-view-controller

我在RegistrationController中有一个注册检查:

public class RegistrationController : Controller
{
    private readonly IAmARegistrationRepository _RegistrationRepository;
    public RegistrationController(IAmARegistrationRepository registrationRepository)
    {
        _RegistrationRepository = registrationRepository;
    }
    public  bool IsRegistered(string userName)
    {
        return _RegistrationRepository.IsRegistered(userName);
    }
}

如何从我的HomeController检查这个?有没有办法访问ControllerBuilder以拉入当前打开的控制器(如果有的话)?或者至少能够使用客户控制器工厂生成一个我已加载到ControllerBuilder中的Global.asax.cs

2 个答案:

答案 0 :(得分:5)

我认为你是在思考这个问题。您已经在存储库中拥有可以使用的方法。为什么要创建另一个控制器只是为了调用一个简单地遵循存储库方法的方法?在HomeController中创建存储库的实例,并在其上使用IsRegistered方法。

答案 1 :(得分:2)

一个解决方案(很多)将在BaseController中实现公共函数IsRegistered,并从BaseController中同时使用HomeController和RegistrationControlle继承。