Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC, как передать модель между двумя action? / 25 сообщений из 47, страница 1 из 2
01.03.2012, 11:12
    #37685892
OracleLover
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public ActionResult Check(SuperModel model)
{
   return RedirectToAction("Approve")
}

public ActionResult Approve(SuperModel model)
{
   // как здесь получить модель которая пришла в Check?
}



Можно использовать TempData, но это некрасиво и чревато тем что пользователь просто нажав ф5 может потерять модельку.
...
Рейтинг: 0 / 0
01.03.2012, 11:48
    #37685966
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
Да нормально с TempData, а еще лучше - обойтись одним экшен.
...
Рейтинг: 0 / 0
01.03.2012, 12:02
    #37686001
OracleLover
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
ПарамонДа нормально с TempData, а еще лучше - обойтись одним экшен.

не, TempData здесь не подходит - а насчет акшинов это само собой, только действия выполняются по шагам и на каждый шаг свой View.
...
Рейтинг: 0 / 0
01.03.2012, 12:06
    #37686010
rudevelop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
Такой вариант не подойдет?

Код: c#
1.
2.
3.
4.
public ActionResult Check(SuperModel model)
{
   return View("Approve", model)
}
...
Рейтинг: 0 / 0
01.03.2012, 12:11
    #37686021
OracleLover
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
rudevelopТакой вариант не подойдет?

Код: c#
1.
2.
3.
4.
public ActionResult Check(SuperModel model)
{
   return View("Approve", model)
}



в этом случае акшн не выполняется
...
Рейтинг: 0 / 0
01.03.2012, 12:12
    #37686022
OracleLover
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
подождем МСУ )
...
Рейтинг: 0 / 0
01.03.2012, 12:24
    #37686054
OracleLover
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
короч пока запихнул в сессию модельку - подождем более красивого варианта.
...
Рейтинг: 0 / 0
01.03.2012, 12:30
    #37686068
MVC, как передать модель между двумя action?
Архитектурно неверный подход. Если не хотите измененную модель в Approve, запретите её менять в представлении.
Если плевать на бест практис, хороший тон и прозрачность логики, можете пересохраняться (как Вам уже сказали, хоть в базе данных) и извлекаться в Approve.
...
Рейтинг: 0 / 0
01.03.2012, 12:49
    #37686115
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
OracleLoverподождем более красивого варианта.

Это вам не визард с ViewSate ), обычные пост/гет запросы, чудеса закончились )
...
Рейтинг: 0 / 0
01.03.2012, 14:18
    #37686365
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
OracleLover
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public ActionResult Check(SuperModel model)
{
   return RedirectToAction("Approve")
}

public ActionResult Approve(SuperModel model)
{
   // как здесь получить модель которая пришла в Check?
}



Можно использовать TempData, но это некрасиво и чревато тем что пользователь просто нажав ф5 может потерять модельку.

RedirectToAction используйте
...
Рейтинг: 0 / 0
01.03.2012, 14:20
    #37686369
Pavluha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
Pavluha,

Вот так RedirectToAction("Message", "Error", new { message = Resources.Strings.ErrorDelete });
...
Рейтинг: 0 / 0
07.03.2012, 14:43
    #37695361
OracleLover
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
PavluhaPavluha,

Вот так RedirectToAction("Message", "Error", new { message = Resources.Strings.ErrorDelete });

фих там
...
Рейтинг: 0 / 0
07.03.2012, 14:52
    #37695385
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
Эмм, а как вам некрасивые варианты с сессией? :)
примерно так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public ActionResult Check(SuperModel model)
{
Session["chkModel"] = model;
   return RedirectToAction("Approve")
}

public ActionResult Approve()
{
    var checkModel = (SuperModel)Session["chkModel"];

    Session.Remove("chkModel");

    return View();
   // как здесь получить модель которая пришла в Check?
}



можно в бехайндер даже засунуть, чтобы
Хотя лично мне вариантик не оч нравится
...
Рейтинг: 0 / 0
07.03.2012, 15:06
    #37695410
rudevelop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
У себя использовал следующий вариант:

Модель преобразовывал в текст (сериализовал) и хранил в hidden field, на следующей странице доставал значение из temp дата и десиреализовал обратно в объект. Подробно об этой реализации здесь Пример на mvc2, но переделать на mvc3 не проблема.

Хранить объект в сессии - данные могут быть потеряны в связи с перегрузкой сайта, или время сессии вышло, или сервер захочет освободить немного места для других целей...
...
Рейтинг: 0 / 0
07.03.2012, 15:10
    #37695422
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
rudevelopХранить объект в сессии - данные могут быть потеряны в связи с перегрузкой сайта, или время сессии вышло, или сервер захочет освободить немного места для других целей...

да, это одна из причин, почему этот вариант не нравится (хотя сессию можно ведь хранить как угодно)

при серриализации и хранении в hidden-field лучше хранить в base64 + хешь по данным и secret key, чтобы после чека нельзя было подменить данные
...
Рейтинг: 0 / 0
07.03.2012, 15:19
    #37695439
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
rudevelopУ себя использовал следующий вариант:

Модель преобразовывал в текст (сериализовал) и хранил в hidden field, на следующей странице доставал значение из temp дата и десиреализовал обратно в объект.


И, кстати, получаем ViewState ))
...
Рейтинг: 0 / 0
07.03.2012, 15:47
    #37695496
rudevelop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
И, кстати, получаем ViewState ))
Совершенно верно=)

Но для одной модели, а не для всей страницы, и полностью контролируемый.
...
Рейтинг: 0 / 0
07.03.2012, 15:56
    #37695515
OracleLover
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
я так и храню в сессии. Просто мне казалось гораздо удобнее бы было придумать спецконтейнер для этого. Надо будет в майкрософт написать претензию :)
...
Рейтинг: 0 / 0
07.03.2012, 15:58
    #37695519
SanSYS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
OracleLoverя так и храню в сессии. Просто мне казалось гораздо удобнее бы было придумать спецконтейнер для этого. Надо будет в майкрософт написать претензию :)

а чем не подходит вариант предложенный rudevelop?
...
Рейтинг: 0 / 0
07.03.2012, 16:32
    #37695573
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
Извращения продолжаются )

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public ActionResult Check(SuperModel model)
{
   // логика
   if(IsValid)
      return View("Approve", model);
   else
      return View("Order", model);
}


а так ?
...
Рейтинг: 0 / 0
07.03.2012, 16:38
    #37695581
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
Не понимаю вообще "проблемы". Её нет.
...
Рейтинг: 0 / 0
07.03.2012, 16:55
    #37695609
MVC, как передать модель между двумя action?
автора так ?
а что так?
скажем у меня есть экшн delete! я хочу просто удалить фотку и нехочу возвращать вью delete с надписью "фотка удалена"
я хочу вернуться по адресу где я был до вызова экшна delete и увидеть, что фотки тупо нету!
вполне естественно, что это будет так
Код: c#
1.
return RedirectToAction("Album")


сервер в ответ по экшну delete выдаст браузеру заголовок http://en.wikipedia.org/wiki/HTTP_location
браузер перезапросит сервер по новому адресу и выдаст страницу по GET ALBUM

Где там нарисовались хидден-филды (которые никак не попадают в ответ сервера с delete) и
Код: c#
1.
return View("Order", model); //по запросу http://aaa.com/delete будет разметка http://aaa.com/album


так и остаётся за пределом понимания!

сессия - неплохое хранилище данных между запросами!!!
...
Рейтинг: 0 / 0
07.03.2012, 17:09
    #37695624
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
БД - отличное хранилище данных между запросами! Можно сжечь комп и продолжить потом на новом! :)

Может раскроете суть задачи? Для чего передавать модель между действиями? Чтобы что реализовать?
...
Рейтинг: 0 / 0
07.03.2012, 17:10
    #37695626
Парамон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
как то так...Где там нарисовались хидден-филды (которые никак не попадают в ответ сервера с delete) и

ЧиВо o_0 ?

как то так...сессия - неплохое хранилище данных между запросами!!!
Плохое )
...
Рейтинг: 0 / 0
07.03.2012, 17:11
    #37695628
OracleLover
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC, как передать модель между двумя action?
skyANAЧтобы что реализовать?

Мастера

1 Шаг - задайте параметры
2 Шаг - введите что хотите
3 Шаг - позырьте все ли вы правильно сделали
4 Шаг - подверждайте
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC, как передать модель между двумя action? / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]