Asp.net-Mvc

RedirectToAction 完成後視圖不刷新

  • October 10, 2019

這是我的問題:

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

引用自:https://stackoverflow.com/questions/11955161