2013-06-25 39 views
0

我有一个调用这个动作来构建CompareEvents页面的表单:调用RedirectToAction

[HttpPost] 
public ActionResult CompareEvents(int[] EventsList, bool showIndex, bool showFRN, bool showProvider) 
{ 
     var viewModel = new EventsListViewModel 
     { 
      Events = EventsList, 
      ShowFRN = showFRN, 
      ShowIndex = showIndex, 
      ShowProvider = showProvider 
     }; 

     return View(viewModel); 
} 

在CompareEvents查看还有另一种形式,它允许用户更新信息:

[HttpPost] 
public ActionResult UpdateSolution(IEnumerable<Solution> sol) 
    { 

      //update solution code 
      int[] eventList = { '85' }; 

      return RedirectToAction("CompareEvents", new { EventsList = eventList, showIndex = true, showFRN = true, showProvider = true }); 
} 

当此信息是更新,我想重新加载页面。我打算通过再次调用CompareEvents操作来完成此操作,但是我的堆栈跟踪表明A public action method 'CompareEvents' was not found on controller

我该如何实现?

+0

是在同一个控制器定义这两个操作? – Kenneth

回答

3

您不能重定向到标记为[HttpPost]的操作。 RedirectToAction使用GET。

来源:

返回一个HTTP 302响应于所述浏览器,这会导致浏览器作出GET请求到指定的操作。

Reference.