2017-03-14 54 views
1

我已經在ASP.NET MVC中編寫了一個程序,並且我的AJAX函數有問題。JQuery POST重定向

如果我的函數返回成功,我想重定向到另一個頁面,在POST方法。我不能使用window.location,所以我必須做一個表單,將執行一個後期的方法。

這裏是我的代碼:

<body> 
<div class="login"> 
    <div class="login-screen"> 
     <div class="app-title"> 
      <h1>bla bla bla</h1> 
     </div> 

     <div class="login-form"> 
      <div class="control-group"> 
       <input type="text" class="login-field" value="" placeholder="bla bla bla" id="login-name"> 
       <label class="login-field-icon fui-user" for="login-name"></label> 
      </div> 
      <div class="control-group"> 
       <input type="password" class="login-field" value="" placeholder="bla bla bla" id="login-pass"> 
       <label class="login-field-icon fui-lock" for="login-pass"></label> 
      </div> 

      <input type="button" class="btn btn-primary" id="button" value="bla bla bla"/> 
     </div> 
    </div> 
    <div id="failedLogin"> 
    </div> 

</div> 
</body> 

<script src="~/Scripts/Login.js"></script> 

這裏爲m的js代碼

$("#button").click(function() { 
    $.ajax({ 
     url: "home/signIn", 
     data: { userName: $("#login-name").val(), Password: $("#login-pass").val() }, 
     success: function (result) { 
      if (result == "success") { 

       var redirect = function (url, method) { 
        $('<form>', { 
         method: method, 
         action: url 
        }).submit(); 
       }; 

       redirect('/Account/Menu?Name=' + $("#login-name").val(), 'post'); 
      } 
      else { 
       var content = $("#failedLogin"); 
       var label = "<label class=\"result\">bla bla bla </label>"; 
       content.html(label); 
      } 
     } 
    }) 

我的C#代碼:

public string signIn(string userName , string Password) 
{ 
    var db = new OsemEntities(); 

    var name= from u in db.********* 
       where u.UserName == userName & u.UserPassword == Password 
       select u.UserName; 

    if (name.Count() == 1) 
     return "success"; 
    else 
     return "fail"; 


} 

我交的重定向不工作,我會很高興得到一些幫助。

謝謝!

+2

爲什麼在世界上你是否使用ajax如果你想重定向。只需進行正常提交。 –

+0

你有成功的迴應嗎? @Tal – CaptainHere

+0

是的,我編輯的問題,並添加登錄代碼 – Tal

回答

0
var redirect = function (url, method) { 
        $('<form>', { 
         type: method, 
         action: url 
        }).submit(); 
       }; 

試試這個。方法折舊。使用類型代替

+0

不工作 – Tal

0

您不需要返回到Ajax函數,您可以從您的控制器端處理此問題。

if (name.Count() == 1) 
      return RedirectToAction("HomeView"); 
//In your HomeView you can have your first page 
     else 
      return View();