2010-10-17 17 views
5

Próbuję znaleźć przykład, jak przekonwertować standardowy schemat logowania dostarczany z ASP .NET MVC 2 (kontrolery kont i widoki, itp.) Na logowanie modalne system dialogowy, taki jak ten w Digg.ASP.NET MVC 2 + jQuery lightbox + zaloguj

Po wyszukaniu godzinach najbliżej samouczek znalazłem to: http://www.weirdlover.com/2010/05/20/mvc-render-partial-modal-pop-up-via-jquery-and-colorbox-demo/

Jednakże, istnieje kilka modyfikacji, które chciałbym, aby do niej - na przykład, jeśli nie ma błędu walidacji, zamiast wyświetlania go w formularzu (np: <%: Html.ValidationMessageFor (m => m.UserName)%>), chcę przesunąć pasek w dół strony, np. Twitter/Digg. Nie jestem pewien, jak wykorzystać istniejącą strukturę uwierzytelniania, aby uzyskać dostęp do błędów sprawdzania poprawności w javascript.

Każda pomoc zostanie doceniona. Dzięki! Plus, jeśli znasz jakieś dobre tutoriale innych niż ta, którą pisał, że byłoby świetnie ...

+1

Czy możesz wyjaśnić, o co pytasz? Widzę tylko, że chcesz urozmaicić błędy sprawdzania poprawności za pomocą javascript i prawdopodobnie już to zostało zrobione. – jfar

+0

Poszukuję sposobu na wdrożenie systemu logowania, takiego jak Digg, w tym sposobu wyświetlania błędów sprawdzania poprawności, przy użyciu istniejącego szkieletu uwierzytelniania dostarczanego z ASp .NET MVC i jQuery. – Prabhu

+0

Brak wyraźnych wymagań, ale uważam, że jest to bardzo użyteczna metoda i zachęciłaby do większej liczby rejestracji ... – Prabhu

Odpowiedz

1

Oto Akcja logowania w 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); 
     } 

Ostateczna powrót View (model), może zostać zmieniony, aby powrócić coś innego, może coś takiego:

return PartialView("LogOnFailed",model); 

błędy walidacji odbywają się w ModelState który jest specjalnym słowniku błędów walidacji modelu, można po prostu iteracyjne nad nimi:

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