2010-10-17 36 views
5

Tôi đang cố gắng tìm một ví dụ về cách chuyển đổi khung đăng nhập chuẩn đi kèm với ASP .NET MVC 2 (bộ điều khiển tài khoản và chế độ xem, v.v.) thành thông tin đăng nhập phương thức hệ thống hộp thoại, giống như hệ thống ở Digg.ASP.NET MVC 2 + jQuery lightbox + login

Sau khi tìm kiếm trong nhiều giờ, hướng dẫn gần nhất tôi thấy được điều này: http://www.weirdlover.com/2010/05/20/mvc-render-partial-modal-pop-up-via-jquery-and-colorbox-demo/

Tuy nhiên, có một vài thay đổi tôi muốn làm với nó - chẳng hạn như, nếu có một lỗi xác nhận, thay vì hiển thị nội tuyến trên biểu mẫu (ví dụ: <%: Html.ValidationMessageFor (m => m.UserName)%>), tôi muốn trượt xuống một thanh ở đầu trang như Twitter/Digg. Tôi không chắc chắn làm thế nào để sử dụng các khuôn khổ xác thực hiện có để truy cập các lỗi xác nhận trong javascript.

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn! Ngoài ra nếu bạn biết về bất kỳ hướng dẫn tốt khác so với cái tôi được đăng, đó sẽ là tuyệt vời ...

+1

Bạn có thể làm rõ yêu cầu của mình không? Tất cả những gì tôi thấy là bạn muốn thêm gia vị cho các lỗi xác thực bằng javascript và có thể đã được đề cập đến trước đó. – jfar

+0

Tôi sẽ tìm cách triển khai hệ thống đăng nhập như Digg, bao gồm cách chúng hiển thị lỗi xác thực, sử dụng khung xác thực hiện có đi kèm với ASp .NET MVC và jQuery. – Prabhu

+0

Không có yêu cầu rõ ràng, nhưng tôi chỉ nghĩ rằng đây là một phương pháp rất hữu ích và sẽ khuyến khích nhiều đăng ký hơn ... – Prabhu

Trả lời

1

Đây là Logon Action trong 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); 
     } 

Các thức trở View (mô hình), có thể được thay đổi để trở lại một cái gì đó khác nhau, có lẽ một cái gì đó như thế này:

return PartialView("LogOnFailed",model); 

lỗi Validation được tổ chức tại ModelState đó là một cuốn từ điển đặc biệt của mô hình lỗi xác nhận, bạn có thể chỉ lặp qua chúng:

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