2010-10-17 20 views
5

Sto cercando di trovare un esempio di come convertire il framework di accesso standard fornito con ASP .NET MVC 2 (i controller e le visualizzazioni dell'account, ecc.) In un accesso modale sistema di dialogo, come quello di Digg.ASP.NET MVC 2 + jQuery lightbox + login

Dopo aver cercato per ore, il tutorial più vicina che ho trovato è stato questo: http://www.weirdlover.com/2010/05/20/mvc-render-partial-modal-pop-up-via-jquery-and-colorbox-demo/

Tuttavia, ci sono alcune modifiche che vorrei rendere ad essa - come ad esempio, se v'è un errore di convalida, invece di visualizzarlo in linea sul modulo (ad esempio: <%: Html.ValidationMessageFor (m => m.UserName)%>), voglio scorrere verso il basso una barra nella parte superiore della pagina come Twitter/Digg. Non sono sicuro di come utilizzare il framework di autenticazione esistente per accedere agli errori di convalida in javascript.

Qualsiasi aiuto sarebbe apprezzato. Grazie! Inoltre, se siete a conoscenza di buoni tutorial diversi da quello che ho postato, che sarebbe fantastico ...

+1

Puoi chiarire che cosa stai chiedendo? Tutto quello che vedo è che vuoi aumentare gli errori di convalida con javascript e questo è stato probabilmente trattato in precedenza. – jfar

+0

Cercherò un modo per implementare un sistema di login come Digg, incluso il modo in cui visualizzano gli errori di convalida, utilizzando il framework di autenticazione esistente fornito con ASp .NET MVC e jQuery. – Prabhu

+0

Nessun requisito esplicito, ma penso che questo sia un metodo molto usabile e incoraggerebbe più iscrizioni ... – Prabhu

risposta

1

Qui è l'azione di accesso nella 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); 
     } 

Il ritorno finale View (modello), può essere modificato per restituire qualcosa di diverso, forse qualcosa di simile:

return PartialView("LogOnFailed",model); 

Gli errori di convalida sono tenuti in ModelState che è un dizionario speciale di errori di convalida del modello, si può semplicemente scorrere su di loro:

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