2017-10-20 9 views
0

J'ai un projet mvc et j'ai utilisé Knouckout.Asp.Net MVC: Impossible d'appliquer la liaison Knockout

avec AppLogin Je souhaite rediriger vers une autre action. Après la RedirectToAction, je suis dans un autre point de vue, mais le second applyBindings ne fonctionne pas

var Login; 
$ (document) .ready (function() { 
Login = new LoginVM(); 
ko.applyBindings (Login, document.getElementById ("pnlLogin")); 


}); 


function LoginVM() { 
var self = this; 
self.Name = ko.observable(); 
self.Password = ko.observable(); 

self.AppLogin = function() { 

       window.location.href = "Main/MainPage"; 
       ko.cleanNode (document.getElementById ("pnlLogin")); 
       ko.applyBindings (Main, document.getElementById ("pnlMain")); 

} 


    } 
+3

Je pense qu'une fois que vous avez défini window.location.href à un autre emplacement, le javascript après il ne sera plus exécuté. Vous devriez faire votre second applyBindings en fait sur MainPage (que vous avez redirigé). – Drummad

Répondre

0

Attribution d'une nouvelle valeur à window.location.href crée une redirection du navigateur. À ce stade, aucun autre code n'est exécuté. Si vous souhaitez modifier l'URL du navigateur sans redirection. Utilisez la fonction pushState dans le navigateur. Here is an excellent example and explanation on MDN.