这是我的问题:
[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操作,它会转到那里,但页面没有刷新。我不明白为什么!求助。
答案 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 };