Ошибка при загрузке страницы после перенаправления на действие MVC3

Сценарий: у меня есть представление (назовем его 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


person pisi    schedule 28.01.2013    source источник
comment
Разве GetWorkList не должно иметь [HttpPost] вместо [HttpGet], поскольку вы отправляете сообщение в это действие контроллера?   -  person Andy Refuerzo    schedule 28.01.2013
comment
Я использовал [HttpPost], и это не работает. Спасибо!   -  person pisi    schedule 29.01.2013


Ответы (1)


Трудно быть конкретным, не видя ваших представлений, но может показаться, что ошибка связана с тем, что вы вызываете частичное представление из представления, которое было обработано как часть запроса POST (запросы на получение выполняются успешно, а запрос на публикацию терпит неудачу). Я не вижу ничего в вашем коде контроллера, чтобы предположить, что вы визуализируете представление внутри почтового запроса, но я не могу придумать лучшего объяснения. Например:

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

И внутри вашего Index.cshtml:

@Html.Action("GetWorkList")

Это пример, когда я мог видеть, что он терпит неудачу таким же образом. Поскольку представление было отображено в контексте запроса публикации, частичное представление также вызывается как запрос публикации, а не получение.

person Dan A.    schedule 29.01.2013