2010-10-17 65 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 
}