2011-09-03 26 views
1

不,我一直堅持在這裏......你能幫我出...如何通過AJAX在ASP.NET MVC 3登錄

$(':submit').click(function (e) { 
    var username = $('#username').val(); 
    var password = $('#password').val(); 
    var postdata = 
    { 
     'Email': username, 
     'Password': password 
    }; 

    $.post({ 
     url: 'http://localhost:7651/Home/CheckLogin', 
     data: postdata, 
     success: function (msg) { 
      alert('Hi'); 
     } 
    }); 
}); 

這是不工作...它不是調用不知何故動作控制器...

我的控制器動作

public string CheckLogin(Users checkuser) 
{ 
    if (db.CheckUserLoginDetails(checkuser.Email, checkuser.Password)) 
    { 
     return "Login Successful:" + checkuser.Email; 
    } 
    else 
    { 
     return "Login UnSuccessful"; 
    } 
} 

請幫忙....還做我需要防止的提交按鈕的defualt行爲像e.preventDefault();

+0

您有什麼樣的錯誤(注:尚未調試,但大致類似下面)?你能提供更多細節嗎? – marvelTracker

回答

2

下面是你需要做的步驟:

  • 你的LoginController需要驗證的登錄,並返回包含登錄狀態的HTML片段。請注意,這裏不需要全面的HTML。只是包含結果的片段
  • 如您所知,您可以利用您在視圖中放置的jQuery.ajax。要登錄結果追加到DIV,你可以使用jQuery.html下面是你需要的片段:

// Override form submit 
$("form").live("submit", function (event) { 
    event.preventDefault(); 
    var form = $(this); 

    $.ajax({ 
     // Get the action URL 
     url: form.attr('action'), 
     type: "POST", 

     // get all form variables 
     data: form.serialize(), 

     // upon success, the fragment of HTML from the Controller will be stored in loginResultHtml 
     success: function(loginResultHtml){ 

      // append the html to your login DIV id using jQuery.html function 
      $(#your-login-status-div-id).html(loginResultHtml); 
     } 
    }); 
}); 
 
+0

thx ...並沒有完全解決我的問題,但瞭解到$ .Ajax方法......非常感謝你...... –

+0

答案根據你的新問題而更新。另外,我個人(還有一些人)並不讚賞恢復被接受的答案,特別是當只有一個答案時,然後將答案用作其他人回答的問題的一部分。最好在下一次給回答者留下評論,通常他/她會爲你更新答案。我們在這裏幫助所有 – momo

+0

嘿單聲道,對不起,我沒有意識到這一點,我是新的stackOverflow,所以我想如果我標記接受的答案,那麼我的問題就要關閉,每個人都認爲我有我的答案。 ..所以這就是爲什麼我恢復了接受的答案.... :( –