重定向到MVC3操作后加载页面时出错

时间:2013-01-28 17:10:27

标签: asp.net-mvc asp.net-mvc-3 post-redirect-get redirecttoaction

场景:我有一个视图(让我们称之为Index.cshtml)将表单发布到控制器操作(让我们称之为GetWorkList)。

GetWorkList会运行,然后返回部分视图WorkReport。之后,用户可以通过ModifyDuration操作修改并保存一些数据,而这又应该返回GetWorkList(与我上面提到的相同)。然后部分视图按原样更新,但是我收到一条错误消息:Error loading page在页面完全加载之前消失。

如果没有此错误消息,我该怎么做?

控制器代码:

  [HttpGet]
    public ActionResult Index()
    {
        return View();
    }

    [HttpGet]
    public PartialViewResult GetWorkList(string date)
    {
     .....instructions
       return PartialView("WorkReport", model);
    }

      [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult ModifyDuration(string newDuration, string id, string date)
    {
       .....instructions
      return RedirectToAction("GetWorkList", new
        {
            date = date
        });
    }

浏览器指示错误:

mozilla error

1 个答案:

答案 0 :(得分:2)

如果没有看到你的观点就很难具体,但是看起来错误是因为你在一个视图中调用部分视图,该视图是作为POST请求的一部分呈现的(获取请求在post请求时成功)失败)。我在控制器代码中没有看到任何建议您在Post请求中呈现视图的内容,但我想不出更好的解释。例如:

[HttpPost]
public ActionResult DoSomething() 
{
    ...
    return View(Index);
}

Index.cshtml

@Html.Action("GetWorkList")

这是一个例子,我可以看到它以同样的方式失败。因为视图是在post请求的上下文中呈现的,所以部分视图也会作为post请求而不是get来调用。