2010-10-17 110 views
5

我想找到一個如何將標準登錄框架隨ASP ASP MVC 2(帳戶控制器和視圖等)一起轉換爲模態登錄對話系統,就像Digg一樣。ASP.NET MVC 2 + jQuery的燈箱+登錄

搜尋小時後,我發現最近的教程是這樣的:http://www.weirdlover.com/2010/05/20/mvc-render-partial-modal-pop-up-via-jquery-and-colorbox-demo/

然而,也有一些修改,我想打它 - 比如,如果有一個驗證錯誤,而不是在窗體上顯示它的內聯(例如:<%:Html.ValidationMessageFor(m => m.UserName)%>),我想向下滑動頁面頂部的一個條,如Twitter/Digg。我不知道如何利用現有的身份驗證框架來訪問JavaScript中的驗證錯誤。

任何幫助,將不勝感激。謝謝!另外,如果你知道一個比我張貼其他任何好的教程,那將是巨大的......

+1

你能澄清你的問題嗎?我看到的只是你想用javascript來驗證錯誤,這可能已經被覆蓋了。 – jfar 2010-10-17 03:22:08

+0

我將尋找一種方法來實現像Digg這樣的登錄系統,包括它們如何顯示驗證錯誤,使用ASp .NET MVC附帶的現有身份驗證框架和jQuery。 – Prabhu 2010-10-17 06:07:11

+0

沒有明確的要求,但我只是認爲這是一種非常有用的方法,並且會鼓勵更多註冊... – Prabhu 2010-10-17 16:11:44

回答

1

這裏是登錄行動AccountController.cs

public ActionResult LogOn(LogOnModel model, bool rememberMe, string returnUrl) 
     { 
      if (ModelState.IsValid) 
      { 
       if (MembershipService.ValidateUser(model.UserName, model.Password)) 
       { 
        FormsService.SignIn(model.UserName, rememberMe); 
        if (!String.IsNullOrEmpty(returnUrl)) 
        { 
         return Redirect(returnUrl); 
        } 
        else 
        { 
         return RedirectToAction("Index", "Home"); 
        } 
       } 
       else 
       { 
        ModelState.AddModelError("", "The user name or password provided is incorrect."); 
       } 
      } 

      // If we got this far, something failed, redisplay form 
      return View(model); 
     } 

最後返回查看(模型),可以改變返回不同的東西,也許是這樣的:

return PartialView("LogOnFailed",model); 

驗證錯誤在ModelState中舉行這是模型驗證錯誤的一個特殊的字典,你可以在它們之間迭代:

foreach(var error in ModelState) 
{ 
    //do stuff 
}