2016-07-04 6 views
0

コードは動作していて、ユーザーが最後にログインしたときに保存しますが、ログインできないという問題があります。ログインしようとするとすぐに読み込み中です(ログインが成功したときに)表示されるはずのビューではなく、ログインビューが表示されます。最新のログイン日mvc

// GET: /Account/Login 
    [AllowAnonymous] 
    public ActionResult Login(string returnUrl) 
    { 
     ViewBag.ReturnUrl = returnUrl; 
     return View(); 
    } 

    // 
    // POST: /Account/Login 
    [HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl, ApplicationUser app) 
    { 
     if (!ModelState.IsValid) 
     { 

      app = db.Users.SingleOrDefault(u => u.UserName == model.Email); 
      app.Lastloggedin = DateTime.Now; 
      db.Entry(app).State = EntityState.Modified; 
      db.SaveChanges(); 

      return View(model); 
     } 

コードに問題がありますか?

答えて

-1

ユーザーが正しい資格情報を持っていることを確認したら、ログインモデルではなく、サインインしたモデルにリダイレクトまたはリダイレクトする必要があります。

if (!ModelState.IsValid) 
    { 

     app = db.Users.SingleOrDefault(u => u.UserName == model.Email); 
     app.Lastloggedin = DateTime.Now; 
     db.Entry(app).State = EntityState.Modified; 
     db.SaveChanges(); 

     return RedirectToAction("SignedIn"); 
    }  
+0

を働いていますか?私はちょっとあなたが私に言っていることを理解していますが、私の頭の中で正しいコードを見ることができません: – Daniel

0

あなたは

return View(model); 

を使用するときに

return View("name of the current method/view", model); 

そして、あなたの場合には、実際にこれを返却している:あなたが何をしたいか

return View("Login", model); 

はリターンですユーザーがログイン後に表示されるはずのビュー:

return View("/ViewThatRequiresLoggedInUser"); 
0
[HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 
    { 
     if (!ModelState.IsValid) 
     { 

      return View(model); 
     } 

     ApplicationDbContext db = new ApplicationDbContext(); 
     ApplicationUser logged = db.Users.SingleOrDefault(u => u.UserName == model.Email); 
     logged.Lastloggedin = DateTime.Now; 
     db.Entry(logged).State = EntityState.Modified; 
     db.SaveChanges(); 

今、それはあなたがより多くを説明したり、正しいコードを書くことができます:)