2012-08-14 4 views
6
getan

Hier ist mein Problem:Blick nicht nach RedirectToAction aufzufrischen ist

[HttpPost] 
public ActionResult AddData(CandidateViewModel viewModel) 
{ 
    var newCandidateId = 0; 
    newCandidateId = this._serviceClient.AddCandidate(viewModel); 
    return RedirectToAction("DisplayCandidate",new {id=newCandidateId}); 
} 

public ActionResult DisplayCandidate(int id) 
{ 
    var candidateViewModel= this._serviceClient.GetCandidate(id); 
    return View(candidateViewModel); 
} 

Nachdem Sie das Formular viwemodel Server sendet zu füllen. Nachdem die Daten gespeichert wurden, wird der Fluss an die Aktion "DisplayCandidate" umgeleitet. Er wird dort ausgeführt, die Seite wurde jedoch nicht aktualisiert. Ich verstehe nicht warum! Hilfe bitte.

+1

Schreiben Sie über AJAX? Zeigen Sie Ihren clientseitigen Code. – RedFilter

+0

ja. AJAX: if (DataIsValid()) { $ Schnipsel ({ url: "/ Candidate/AddData", content: "application/json; charset = utf-8", Daten: ko.toJSON (addCandidateCommonInfoViewModel) , Typ: "POST", dataType: 'json' }); } – Vengrovskyi

Antwort

7

Weil Sie

Ajax Beitrag verwenden
public ActionResult AddData(CandidateViewModel viewModel) 
{ 
    var newCandidateId = 0; 
    newCandidateId = this._serviceClient.AddCandidate(viewModel); 
    string ReturnURL = "/DisplayCandidate/"+newCandidateId; 
    return JSON(ReturnURL); 
} 

und in Ihrer Ajax Beitrag Methode:

Onsuccess(function(retURL){ window.location(retURL); }) 

Dies wird auf die neuen Maßnahmen zu ergreifen und die Aktion wird Ansicht zurückzukehren.

+2

Sorry, aber es funktioniert nicht. Könnte es sein, dass du etwas vermisst? – Vengrovskyi

+0

ändern Sie Ihre Controller AddData-Methode zu erhalten. – HaBo

+3

Ersetze 'windows.location (retURL)' mit 'location.replace (retURL)' benutze auch niemals manuelle URL-Constructing, us 'Url.Action (" DisplayCandidate ", neu {id = newCandidateId})' – Saito

Verwandte Themen