2012-08-14 19 views
6

Aquí está mi problema:no se actualiza después de RedirectToAction se hace

[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); 
} 

Después de llenar el formulario viwemodel envía al servidor. Después de almacenar los datos, el flujo se redirige a la acción DisplayCandidate y va allí, pero la página no se actualizó. ¡No entiendo por qué! Ayuda por favor.

+1

¿Estás publicando en AJAX? Muestre su código del lado del cliente. – RedFilter

+0

sí. AJAX: si (DataIsValid()) { $ .ajax ({ url: "/ Candidato/AddData", contentType: "application/json; charset = UTF-8", datos: ko.toJSON (addCandidateCommonInfoViewModel) , tipo: "POST", dataType: 'json' }); } – Vengrovskyi

Respuesta

7

porque está utilizando Ajax Mensaje

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

y en su método POST Ajax:

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

Esto llevará a la nueva acción y que la acción volverá Vista.

+2

Lo sentimos, pero no está funcionando. Podría ser, ¿extrañas algo? – Vengrovskyi

+0

cambie el método AddData de su controlador para obtener. – HaBo

+3

reemplace 'windows.location (retURL)' con 'location.replace (retURL)' Además, nunca use url manual contructing, us 'Url.Action (" DisplayCandidate ", new {id = newCandidateId})' – Saito

Cuestiones relacionadas