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 操作,它會去那裡,但頁面沒有刷新。我不明白為什麼!請幫忙。
因為您使用的是 Ajax Post
public ActionResult AddData(CandidateViewModel viewModel) { var newCandidateId = 0; newCandidateId = this._serviceClient.AddCandidate(viewModel); string ReturnURL = "/DisplayCandidate/"+newCandidateId; return JSON(ReturnURL); }並在您的 Ajax 發布方法中:
Onsuccess(function(retURL){ window.location(retURL); })這將採用新的操作,並且該操作將返回視圖。
如果您使用的是 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 };