簡體   English   中英

如何:(jQuery)帶ASP.NET MVC 2的模式登錄對話框?

[英]How to: (jQuery) Modal login dialog w/ ASP.NET MVC 2?

什么是覆蓋ASP.NET MVC 2中內置登錄機制的最佳方法,以便在用戶需要登錄時彈出模式對話框(或[Authorize]標簽裝飾Controller Action)?

我一直在尋找一段時間,沒有真正做到這一點

任何幫助或指導將不勝感激

jQuery不是先決條件,但我熟悉它

這是完全有可能的,而不是太難。

http://weblogs.asp.net/mikebosch/archive/2008/02/15/asp-net-mvc-submitting-ajax-form-with-jquery.aspx

這是另一篇我似乎無法找到的帖子:

是的,這是可能的。 只需使用mike bosch所述的方法提交登錄表單,並返回帶有returnUrl的json數據結構(如果有的話)。

我創建了一個輕量級的LoginResultDTO類,我以json的形式返回:

public class LoginResultDTO 
{ 
  public bool Success {get;set;} 
  public string Message {get;set;} 
  public string ReturnUrl {get;set;} 
} 

這是我的“登錄”視圖中的腳本塊:

<script type="text/javascript"> 
        $(document).ready(function() { 
            var form = $($("form")[0]); 
            form.submit(function() { 
                var data = form.serialize(); 
                $.post(form.attr("action"), data, function(result, status) { 
                    if (result.Success && result.ReturnUrl) { 
                            location.href = result.ReturnUrl; 
                    } else { 
                        alert(result.Message); 
                    } 
                }, "json"); 
                return false; 
            }); 
        }); 
</script> 

這將用ajax包裝登錄表單。 請注意,這是javascript代碼最簡單的實現,但它是一個開始的地方。

然后我在AccountController中修改了我的LogOn動作,在相關的地方放了這樣的東西:

if(Request.IsAjaxRequest()) 
{ 
  return Json(new LoginResultDTO{Success=true,Message="Successfully logged in"}); 
}else 
{ 
  return View(); 
} 

所以這是一個超級但相當完整的版本,可以在asp.net mvc中完成jquery身份驗證。

您可以在項目中公開將驗證用戶是否已登錄的Web服務。在$(document).ready() ,對Web服務執行$.ajax()調用。 根據結果​​,您可以使用JQuery的UI庫中the $.dialog()函數顯示模式彈出窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM