powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ASP.NET MVC передача данных между контроллерами
25 сообщений из 28, страница 1 из 2
ASP.NET MVC передача данных между контроллерами
    #38869137
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. кто нибуть может подсказать как реализовать следующее:
первый контроллер подразумевает подбор материала на основании характеристик вводимых пользователем,
второй контроллер уточняющий поиск на основании основных характеристик инструмента.
хочу сделать следующее пользователь заполнил модель из первого контроллера, перешел во второй и заполнил значения второй модели(характеристики инструмента) получил уточненные данные на основании введенных значений. либо пользователь перешел сразу к подбору инструмента без уточнения материала и в этом случае получил большее количество инструментов.не знаю как сделать передачу из одного контроллера в другой контроллер.

P.S.: понимаю что вопрос может быть не совсем корректно сформулирован, но как написать иначе не знаю
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38869142
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bald56rusпользователь заполнил модель из первого контроллера, перешел во второйЧто значит "Пользователь перешел во второй контроллер"? Он сделал новый запрос?
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38869149
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Probald56rusпользователь заполнил модель из первого контроллера, перешел во второйЧто значит "Пользователь перешел во второй контроллер"? Он сделал новый запрос?
вот код страницы:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<body>
    <nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
          <div class="navbar-header">
              @Html.ActionLink("Project name","Index","Default",new { @class = "navbar-brand" })
          </div>
          <ul class="nav navbar-nav">
            <li>@Html.ActionLink("Подбор материала", "Edit", "Grade")</li>  
            <li>@Html.ActionLink("Фрезерование", "Index", "Milling")</li>
          </ul>
      </div>
    </nav>
    @RenderBody()
</body>


т.е. пользователь переходит по ссылке, заполняет в форме нужные поля нажимает "save" возвращается сюда же и здесь уже выбирает фрезерование ну и далее по логике
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38869173
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bald56rus,

RenderAction ?
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38869174
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38869189
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MonochromatiqueMonochromatiquebald56rus,

RenderAction ?

http://www.sql.ru/forum/1091968/aps-net-mvc-deystviya-kontrollerov?hl=renderaction
если я правильно понял, то суть метода сводится к тому что в формировать "общее" представление а обрабатывать полученные значения.
P.S.: под общим подразумеваю что будет в едином представлении поля из обоих моделей(материал, инструмент).поправте меня если не правильно понял
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38869500
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что то не пойму почему не получается
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class CuttersGrades
    {
        public ViewSolidCutters cutters { get; set; }
        public ViewGrade grades { get; set; }
    }
if (ModelState.IsValid)
            {
                CuttersGrades _cutters = new CuttersGrades();
                _cutters.cutters = cutters;
                _cutters.grades = grades;
                return RedirectToAction("DetailsSolid", "Milling",_cutters);
            }


в отладке смотрю _cutters.cutters не null, в DetailsSolid
Код: c#
1.
2.
3.
4.
public ActionResult DetailsSolid(CuttersGrades CuttersGrades, int? page)
        {
                ...
        }

приходит null. кто нибуть подскажите почему?
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38870611
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bald56rusчто то не пойму почему не получается
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class CuttersGrades
    {
        public ViewSolidCutters cutters { get; set; }
        public ViewGrade grades { get; set; }
    }
if (ModelState.IsValid)
            {
                CuttersGrades _cutters = new CuttersGrades();
                _cutters.cutters = cutters;
                _cutters.grades = grades;
                return RedirectToAction("DetailsSolid", "Milling",_cutters);
            }


в отладке смотрю _cutters.cutters не null, в DetailsSolid
Код: c#
1.
2.
3.
4.
public ActionResult DetailsSolid(CuttersGrades CuttersGrades, int? page)
        {
                ...
        }

приходит null. кто нибуть подскажите почему?

Редирект то правильно отрабатывает - как смотрите?
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38870936
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eJackРедирект то правильно отрабатывает - как смотрите?
ставлю точку останова, запускаю приложение смотрю переменную через отладчик. в методе где происходит "валидация" модели как написал уже переменные не null в методе "DetailыSolid" приходит null
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871307
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bald56rus,

Конечно, приходит null. Вам нужно почитать чем Get отличается от Post и как их использовать. RedirectToAction - это Get, а потому, передать объект класса передать не получится. Положите _cutter в TemdData перед редиректом, а в DetailsSolid читайте его оттуда.
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871514
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bald56rus,

Код: c#
1.
return RedirectToAction("DetailsSolid", "Milling", new { CuttersGrades =_cutters })



Вот так должно работать.
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871532
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJack,

Вам тоже надо бы почитать про RedirectToAction...
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871611
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleroneJack,

Вам тоже надо бы почитать про RedirectToAction...
все может быть - последний раз писал реальные вещи в 2011 и там же редирект был, дома вечером посмотрю.

Но что то мне напоминает что я как то так обходился, без всяких костылей типа TemdData
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871627
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJack,

Еще можно RouteValueDictionary, но это все равно тот же Querystring
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871632
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleroneJack,

Еще можно RouteValueDictionary, но это все равно тот же Querystring

Нет конечно, это не совсем так
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871634
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJackбез всяких костылей типа TemdData

Нормальные костыли, ингода вполне юзабельные
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871666
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttAxeleroneJack,

Еще можно RouteValueDictionary, но это все равно тот же Querystring

Нет конечно, это не совсем так

Смысл тот же - передавать key/value пары :)
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871677
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleroneJack,

Еще можно RouteValueDictionary, но это все равно тот же Querystring


Посмотрел - да передавал? но простые значения, что то типа:

Код: c#
1.
return RedirectToAction("DetailsSolid", "Milling", new { Id=_model.Id})



А саму сущность получал опять же в "DetailsSolid" через
Код: c#
1.
dbContext.Model.find(Id);
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871678
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostteJackбез всяких костылей типа TemdData

Нормальные костыли, ингода вполне юзабельные

+100500 но без фанатизма
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871679
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJack,

Да, можно, но передавать таким образом можно только строковые значения.

Модель - да, наверное, и так можно, но при условии, что объект хранится в базе (как в Вашем примере), а такой способ не под каждую задачу подходит.
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871787
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleroneJack,

Да, можно, но передавать таким образом можно только строковые значения.

Модель - да, наверное, и так можно, но при условии, что объект хранится в базе (как в Вашем примере), а такой способ не под каждую задачу подходит.

В данном случае это Id это int.
сдается мне что можно передать и объект класса - ответ кроется в Bind'е параметров - надо покапать.
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38871835
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJack+100500 но без фанатизма

Да, например, необходимо обеспечить обязательный порядок перехода с одной страницы на другую (или, с одного действие на другое), с передачей внутренних данных без применения сессии, TempData в данном случае самое оно.
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38872207
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eJack,

В данном случае задача передать объект класса ViewSolidCutters, а объект класса передать по RedirectToAction напрямую невозможно.
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38872214
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

TempData, по сути, является типом краткосрочной сессии
...
Рейтинг: 0 / 0
ASP.NET MVC передача данных между контроллерами
    #38872286
eJack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleroneJack,

В данном случае задача передать объект класса ViewSolidCutters, а объект класса передать по RedirectToAction напрямую невозможно.

Если завернуть в RouteValueDictionary объект класса ViewSolidCutters - то он его передаст как параметры

/controller/action/{X}?.........

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


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