2010-10-17 13 views
5

Estoy tratando de encontrar un ejemplo de cómo convertir el marco de inicio de sesión estándar que se incluye con ASP .NET MVC 2 (los controladores de cuenta y vistas, etc.) en un inicio de sesión modal sistema de diálogo, como el de Digg.ASP.NET MVC 2 + jQuery lightbox + inicio de sesión

Después de buscar durante horas, el tutorial más cercano que encontré fue esto: http://www.weirdlover.com/2010/05/20/mvc-render-partial-modal-pop-up-via-jquery-and-colorbox-demo/

Sin embargo, hay algunas modificaciones que me gustaría hacer a él - como por ejemplo, si hay un error de validación, en vez de mostrarlo en línea en el formulario (por ejemplo, <%: Html.ValidationMessageFor (m => m.UserName)%>), quiero deslizar hacia abajo una barra en la parte superior de la página como Twitter/Digg. No estoy seguro de cómo hacer uso del marco de autenticación existente para acceder a los errores de validación en javascript.

Cualquier ayuda sería apreciada. ¡Gracias! Además, si usted sabe de alguna buena tutoriales distintos de aquel que me envió, que sería genial ...

+1

¿Puedes aclarar qué preguntas? Todo lo que veo es que desea darle vida a los errores de validación con javascript y es probable que ya haya sido cubierto. – jfar

+0

Buscaré una forma de implementar un sistema de inicio de sesión como Digg, que incluya cómo muestran los errores de validación, utilizando el marco de autenticación existente que viene con ASp .NET MVC y jQuery. – Prabhu

+0

No hay requisitos explícitos, pero creo que este es un método muy útil y fomentaría más registros ... – Prabhu

Respuesta

1

Aquí es la acción LogOn en 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); 
     } 

El retorno final Ver (modelo), puede ser cambiado para devolver algo diferente, tal vez algo como esto:

return PartialView("LogOnFailed",model); 

los errores de validación se llevan a cabo en ModelState que es un diccionario especial de errores de validación de modelos, sólo puede iterar sobre ellos:

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