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]
并且它不工作。谢谢