场景:我有一个视图(让我们称之为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
});
}
浏览器指示错误:
答案 0 :(得分:2)
如果没有看到你的观点就很难具体,但是看起来错误是因为你在一个视图中调用部分视图,该视图是作为POST请求的一部分呈现的(获取请求在post请求时成功)失败)。我在控制器代码中没有看到任何建议您在Post请求中呈现视图的内容,但我想不出更好的解释。例如:
[HttpPost]
public ActionResult DoSomething()
{
...
return View(Index);
}
在Index.cshtml
:
@Html.Action("GetWorkList")
这是一个例子,我可以看到它以同样的方式失败。因为视图是在post请求的上下文中呈现的,所以部分视图也会作为post请求而不是get来调用。