【问题标题】:Calling RedirectToAction调用 RedirectToAction
【发布时间】:2013-06-22 21:17:36
【问题描述】:

我有一个调用此操作来构建 CompareEvents 页面的表单:

[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

我怎样才能做到这一点?

【问题讨论】:

  • 两个动作是否定义在同一个控制器中?

标签: asp.net-mvc controller action redirecttoaction


【解决方案1】:

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

来源:

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

Reference.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 2011-01-20
    相关资源
    最近更新 更多