2017-03-14 4 views
1

Ich habe ein Programm in ASP.NET MVC geschrieben und ich habe ein Problem mit meiner AJAX-Funktion.JQuery POST Redirect

Wenn meine Funktion Erfolg zurücksende, möchte ich auf eine andere Seite in POST-Methode umleiten. Ich kann window.location nicht benutzen, also muss ich ein Formular bilden, das eine Pfostenmethode durchführt.

ist hier mein Code:

<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> 

Hier m js Code ist

$("#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); 
      } 
     } 
    }) 

Code mein 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"; 


} 

nicht funktioniert Mein Beitrag Redirect, ich werde froh bekommen etwas Hilfe.

Danke!

+2

Warum in der Welt verwenden Sie Ajax, wenn Sie umleiten möchten. Mach einfach einen normalen Beitrag. –

+0

Erhalten Sie eine Erfolgsantwort? @Tal – CaptainHere

+0

Ja, ich habe die Frage bearbeitet und den SignIn-Code hinzugefügt – Tal

Antwort

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

Versuchen Sie dies. Methode wird abgeschrieben. Verwenden Sie stattdessen den Typ

+0

funktioniert auch nicht – Tal

0

Sie müssen nicht zur Ajax-Funktion zurückkehren, Sie können dies von Ihrer Steuerungsseite aus behandeln.

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