RedirectToAction完成后,View不会刷新

时间:2012-08-14 14:58:52

标签: asp.net-mvc redirecttoaction

这是我的问题:

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

填写表单后viwemodel发送到服务器。存储数据后,将流重定向到DisplayCandidate操作,它会转到那里,但页面没有刷新。我不明白为什么!求助。

2 个答案:

答案 0 :(得分:10)

因为您使用的是Ajax Post

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

并在您的Ajax Post方法中:

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

这将采用新的Action,Action将返回View。

答案 1 :(得分:0)

如果您使用的是Ajax,请返回脚本结果以执行导航

代替

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

尝试

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