2017-03-16 2 views
0

J'ai un site Web ASP.Net MVC développé avec VS2015. J'ai un contrôleur appelé EditBatchController. Cela a eu une méthode "Resubmit" qui est postée à partir d'un appel Javascript Ajax.RedirectToAction rediriger au mauvais endroit

est ici l'appel:

self.resubmit = function() { 
    var data = { Recs: ko.toJS(this.recs) }; 

    $.ajax({ 
     type: "POST", 
     url: BASE_URL + 'EditBatch/Resubmit', 
     data: ko.toJSON(data), 
     contentType: 'application/json', 
     async: true, 
     success: function (data) { 
      window.location = BASE_URL + 'EditBatch/Index'; 
     }, 
     error: function (data) { 
      toastrs(false); 
     } 
    }); 

Et voici la signature de la méthode de soumettre à nouveau du contrôleur:

[HttpPost] 
//Called by the Knockout View Model to update db 
public void Resubmit(List<EditBatchViewModel>recs) 
{ 

A la fin de cette méthode, je voudrais rediriger vers l'action « Index » d'un contrôleur différent, donc je ai ce qui suit:

RedirectToAction(actionName: "Index", controllerName: "APInvoicesSummaryController"); 

Mon problème est, sur l'exécution du est en ligne, une requête GET pour EditBatch/indice est émis plutôt que pour APInvoicesSummaryController/Index - ceci est affiché à l'écran Fiddler suivant grab:

fiddler

Je l'ai utilisé RedirectToAction plusieurs fois auparavant avec succès, mais cette fois-ci Je suis perplexe. Quelqu'un peut-il me dire où je me suis trompé?

+1

Vous utiliserez également 'APInvoicesSummary', pas' APInvoicesSummaryController' pour controllerName. –

Répondre

0

Doh! Dès que j'ai posté alors je pouvais voir mon erreur. La redirection vers « EditBatch » vient du Javascript -

success: function (data) { 
       window.location = BASE_URL + 'EditBatch/Index'; 

Hope this helps quelqu'un d'autre aussi fatigué que je suis à l'avenir, peut-être même moi - pas rare!