C# 将存储库带入AccountController
我是MVC和C的新手,我被这个错误迷住了。我不知道如何纠正它。 任何帮助都将不胜感激 我试图将客户存储库引入AccountController,以便在创建用户时,可以从register user视图的下拉列表中将其与客户关联 我在控制器的这条线上得到了错误C# 将存储库带入AccountController,c#,asp.net-mvc,C#,Asp.net Mvc,我是MVC和C的新手,我被这个错误迷住了。我不知道如何纠正它。 任何帮助都将不胜感激 我试图将客户存储库引入AccountController,以便在创建用户时,可以从register user视图的下拉列表中将其与客户关联 我在控制器的这条线上得到了错误 public AccountController() : this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
}
publiccountcontroller()
:此(新的UserManager(新的UserStore(新的ApplicationDbContext()))
{
}
错误是:帐户控制器不包含接受1个参数的构造函数
我已经试过多次更正,但还是被卡住了
public AccountController(UserManager<ApplicationUser> userManager, ICustomerRepository customerRepository)
{
UserManager = userManager;
customerrepository = customerRepository;
}
public AccountController(UserManager UserManager,icCustomerRepository customerRepository)
{
UserManager=UserManager;
customerrepository=customerrepository;
}
谢谢看起来您只有一个构造函数:
public AccountController
{
UserManager<ApplicationUser> _manager ;
public AccountController()
{
this._manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
}
}
在
AccountController
中有2个构造函数
第一个正在呼叫第二个
第二个需要两个参数:一个UserManager
,一个icCustomerRepository
这是错误的,因为你只是把一件东西从第一件传递到第二件
您需要将另一个参数传递到第二个构造函数中
i、 e.猜你想做这样的事:
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())),
new CustomerRepository())
{
}
publiccountcontroller()
:此(新的UserManager(新的UserStore(新的ApplicationDbContext())),
新CustomerRepository())
{
}
看起来您需要在AccountController构造函数中为customerRepository参数提供一个参数
在控制器中创建属性可能是更好的解决方案,如果构造函数中未提供这些属性,则可以生成这些属性:
public AccountController
{
UserManager<ApplicationUser> _manager ;
public AccountController()
{
this._manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
}
}
- 从文本中获取用户管理器,然后
- 创建CustomerRepository的新实例
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager {
get {
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set {
_userManager = value;
}
}
private ApplicationUserManager\u userManager;
公共应用程序管理员用户管理器{
得到{
返回_userManager??HttpContext.GetOwinContext().GetUserManager();
}
专用设备{
_userManager=value;
}
}
此方法将不允许创建抽象类或接口,ICCustomerRepository我没有说新建接口,您将新建从该接口派生的类。很抱歉。我误解了。这确实解决了我的问题。我尝试了更新存储库而不是基类。谢谢