8

这是我的问题:

[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 操作,它会去那里,但页面没有刷新。我不明白为什么!请帮忙。

4

2 回答 2

11

因为您使用的是 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); })

这将采用新的操作,并且该操作将返回视图。

于 2012-08-14T21:19:25.047 回答
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 };
于 2019-10-10T07:07:37.570 回答