Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 重定向到MVC3操作后加载页面时出错_Asp.net Mvc_Asp.net Mvc 3_Post Redirect Get_Redirecttoaction - Fatal编程技术网

Asp.net mvc 重定向到MVC3操作后加载页面时出错

Asp.net mvc 重定向到MVC3操作后加载页面时出错,asp.net-mvc,asp.net-mvc-3,post-redirect-get,redirecttoaction,Asp.net Mvc,Asp.net Mvc 3,Post Redirect Get,Redirecttoaction,场景:我有一个视图(我们称之为Index.cshtml),它将表单发布到控制器操作(我们称之为GetWorkList) GetWorkList运行,然后返回部分视图WorkReport。之后,用户可以通过ModifyDuration操作修改和保存一些数据,该操作反过来应该返回GetWorkList(与我上面提到的相同)。然后,局部视图将按其应该的方式更新,但我收到一条错误消息:错误加载页面,该消息在页面完全加载之前显示 我应该怎么做才能不出现此错误消息 控制器代码: [HttpGet]

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

GetWorkList
运行,然后返回部分视图
WorkReport
。之后,用户可以通过
ModifyDuration
操作修改和保存一些数据,该操作反过来应该返回
GetWorkList
(与我上面提到的相同)。然后,局部视图将按其应该的方式更新,但我收到一条错误消息:
错误加载页面
,该消息在页面完全加载之前显示

我应该怎么做才能不出现此错误消息

控制器代码:

  [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
        });
    }
浏览器指示的错误:

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

如果不查看您的视图,就很难具体说明问题,但错误似乎是因为您从作为POST请求一部分呈现的视图中调用了部分视图(get请求成功,而POST请求失败)。我在控制器代码中没有看到任何东西表明您正在Post请求中呈现视图,但我想不出更好的解释。例如:

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

@Html.Action("GetWorkList")

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

不应该将
[HttpPost]
替换为
[HttpGet]
,因为您正在发布此控制器操作?我使用了
[HttpPost]
并且它不工作。谢谢