C# 无法在登录控制器中修改MVC 4 bult

C# 无法在登录控制器中修改MVC 4 bult,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,我正在使用mvc4应用程序内置的帐户注册和登录控制器(以及它们各自的型号)。我有自己的删除帐户的方法。因此,我想在标准登录控制器中设置一个检查,以便它检查我是否自己删除了该帐户,然后将此人重定向到一个信息页面 然而,当控制器被调用时,它只是通过我的代码行,仍然让用户登录。我查过数据库了。用户已将0设置为其IsActive(将帐户列为“活动”和“非活动”)值,应将其重定向。但他只是像我的代码行不存在一样登录 这是控制器中的代码: [HttpPost] [AllowAnonymous] [Valid

我正在使用mvc4应用程序内置的帐户注册和登录控制器(以及它们各自的型号)。我有自己的删除帐户的方法。因此,我想在标准登录控制器中设置一个检查,以便它检查我是否自己删除了该帐户,然后将此人重定向到一个信息页面

然而,当控制器被调用时,它只是通过我的代码行,仍然让用户登录。我查过数据库了。用户已将0设置为其IsActive(将帐户列为“活动”和“非活动”)值,应将其重定向。但他只是像我的代码行不存在一样登录

这是控制器中的代码:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
 if (WorkerDAL.IsActive(model.UserName)) RedirectToAction("DisplayDeletedUserMessage", "Home");    //my redirect code

 if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
         {
                    return RedirectToLocal(returnUrl);
         }

     // If we got this far, something failed, redisplay form
 ModelState.AddModelError("", "The user name or password provided is incorrect.");
 return View(model);
}
我的DAL类中的代码:

public static bool IsActive(string _username)
{  TimeTrackerEntities db = new TimeTrackerEntities();
   foreach (Worker worker in db.Workers)
   {
       if (worker.UserName == _username)
       {
             if (worker.IsActive == 1) return true;
             if (worker.IsActive == 0) return false;
       }
   }
return true;
}
我是否对用户使用了错误的重定向操作?还是像这样显而易见的事情?我基本上迷路了

编辑-感谢Eric J.和Jonathon Page,代码现在可以工作了。谢谢你们两位! 我怎样才能把他们的两条评论都记为正确答案呢?

我假设这一行:

if (WorkerDAL.IsActive(model.UserName)) RedirectToAction("DisplayDeletedUserMessage", "Home");
应该读

if (!WorkerDAL.IsActive(model.UserName)) RedirectToAction("DisplayDeletedUserMessage", "Home");

如果用户处于活动状态,您当前似乎正在重定向以显示已删除的用户消息。

您缺少return关键字:

重定向到操作(“显示删除消息”、“主页”)//我的重定向代码

应改为:


返回重定向到操作(“DisplayDeletedUserMessage”、“Home”)//我的重定向代码

您是正确的。我犯了一个愚蠢的错误。。。谢谢你花时间看我的代码!你也是对的!我犯了两个愚蠢的错误。。。还有,谢谢你的帮助!