Vengrovskyi
Vengrovskyi

Reputation: 307

View doesn't refresh after RedirectToAction is done

Here is my problem:

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

After filling the form viwemodel sends to server. After data were stored, flow is redirected to DisplayCandidate action and it goes there but page didn't refresh. I don't understand why! Help, please.

Upvotes: 8

Views: 13244

Answers (2)

Malcolm Swaine
Malcolm Swaine

Reputation: 2258

If you're using Ajax, return a script results to execute the navigation

instead of

return  RedirectToAction("DisplayCandidate",new {id=newCandidateId});  

try

 var viewName = "/Path/ViewName";
 var id = 1;
 var urlNavigate = string.Format("location.href='{0}?id={1}'", viewName, id);
 return new JavaScriptResult() { Script = urlNavigate };

Upvotes: 0

HaBo
HaBo

Reputation: 14297

Because you are using Ajax Post

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

and in your Ajax Post Method:

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

This will take to the new Action and that Action will return View.

Upvotes: 11

Related Questions