Re: [MVC] Post-Redirect-Get и автоматизация форм
От: Маслаков Михаил Эстония www.ammyui.com
Дата: 09.07.10 12:39
Оценка: 3 (1)
А ты не усложняешь всё, случаем?

RPG обычно делается так:

[HttpGet]
public ActionResult A()
{
   return View(new Model());
}

[HttpPost]
public ActionResult A(Model model)
{
   if(!ModelState.IsValid)
       return View(model);

   return RedirectToAction(MVC.ThisController.C);
}

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


Если очень надо, чтобы имя Action'а куда постим отличалось от А, то вместо
return View(model)

пишем
return View("A", model)


Здравствуйте, Ocenochka, Вы писали:

O> Две типовых проблемы:

O> 1. Как правильно сделать "Post-Redirect-Get"?
O> Более подробно: есть две страницы A.mvc и C.mvc и три метода в контроллере A(), B(), C().
O> Методы A() отдает вьюху с формой, метод C() успешный результат post'а формы.
O> На метод B() post'ятся данные формы.
O> Алгоритм работы:
O> 1) Переходим на A.mvc — рендерится форма.
O> 2) Пользователь забивает поля формы и постит на B().
O> 3) В B() происходит серверная валидация и если
O> результат отрицательный, то редирект на A() с сохранением состояния модели, чтобы отрендерить ошибки валидации;
O> если результат валидации положительный, то редирект на C().
O> В стандартном MVC не нашел средств упрощающих такую реализацию, а в MvcContrib реализация не логичная на мой взгляд,
O> поэтому написал пока пару своих фильтров для сохранения/загрузки модели, но приходится перед редиректом на C() очищать
O> состояние модели в Temp'е, иначе после C() пользователь может перейти на A() и увидеть старые ошибки валидации.
O> В общем, простого и лаконичного решения я не нашел.
O> Покажите, пожалуйста, образцовый код, который делает это минимумом движений.

O>2. Есть модель формы, по которой нужно генерировать кастомную (в каждом проекте) разметку.

O> Хочется на каждый тип проперти модели написать фрагмент верстки и отдавать на рендеринг просто объект модели, а вся работа по
O> генерации нужной верстки проходила бы "за сценой".
O> Сюда же хочется возможность прикрутить клиентскую валидацию по серверный атрибутам модели.

O>зы Может вопросы и детские, но я уже замучался гуглить.
www.livexaml.com
www.ammyui.com
www.nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.