powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: Переход к другому действию в другом контроллере
16 сообщений из 16, страница 1 из 1
MVC: Переход к другому действию в другом контроллере
    #38720376
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такое ощущение, что я сталкивался с каким-то штатным способом вызова где-то в литературе, но сейчас никак найти не могу.

Смысл в следующем: в методе контроллера хочу вызвать другой экшн из другого контроллера (чтобы он отработал вместо текущего). Можно, конечно, просто создать экземпляр контроллера и вызвать метод, однако ж у этого экземпляра не будет правильно заполненных контекстов. Redirect - это не то, нафига мне клиента дергать для этой операции.
Есть какой-то штатный способ или мне приснилось?
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720410
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕсть какой-то штатный способ или мне приснилось?

из контроллера RedirectToAction

или правильно вынести код в бизнес логику и дёргать его из разных контроллеров

ещё можно во вью сделать @Html.Action("Action", "OtherController"), OtherController должен проверить, если ChildAction, то вернуть не View, а PatialView.

ещё можно в контроллере создать экземпляр другого контроллера и вызвать его действие, но это вообще какой-то бред. как временный костыль быть может, но не нормальное поведение.

а вообще хотелось бы услышать зачем такое понадобилось?
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720427
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
не кажется что если возникла потребность в этом, то что то не того с архитектурой?
в общем прально замечено выше - вынести код как общий и дергать его с разных мест..
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720435
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttиз контроллера RedirectToActionточно, это ж метод, а я пытался экземпляр создать
hVosttа вообще хотелось бы услышать зачем такое понадобилось?это некоторый набор экшенов для SPA (POST-PartialView), при определенных условиях они не готовы вернуть пользователю нужные данные, поэтому перебрасываются на некий экшн (общий для нескольких контроллеров), который продемонстрирует пользователю сообщение о проблемах.
В бизнес-логику выносить не очень удобно, так как там будет отрабатываться своя модель представления.
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720518
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, и в чём проблема инкапсулировать определённую логику в определённом месте? На контроллерах и моделях же свет клином не сошёлся.
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720536
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proэто некоторый набор экшенов для SPA (POST-PartialView), при определенных условиях они не готовы вернуть пользователю нужные данные, поэтому перебрасываются на некий экшн (общий для нескольких контроллеров)Понапридумывают своё поведение поверх стандартного, а потом мучаются
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720547
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proэто некоторый набор экшенов для SPA (POST-PartialView), при определенных условиях они не готовы вернуть пользователю нужные данные, поэтому перебрасываются на некий экшн (общий для нескольких контроллеров), который продемонстрирует пользователю сообщение о проблемах.

о, так заведи специальный ActionResult и возвращай его в таких случаях, отдельный контроллер тут не нужен.

например так:

Код: c#
1.
2.
3.
4.
5.
if(some) {

   return new SpaMessageResult(бла-бла-бла)

}



ну и

Код: c#
1.
2.
3.
4.
public class SpaMessageResult : ActionResult
{
   ... бла-бла-бла ...
}
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720653
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttо, так заведи специальный ActionResultЕстественно, есть несколько вариантов решения, я решил, что передача управления в другой экшн выглядит в данном случае нагляднее.skyANAповерх стандартногоа что, RedirectToAction - это нестандарт? зачем он тогда вообще придуман? ))

Ну раз вы так активно возражаете, сделаю через ActionResult
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720655
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, стандарт - это HTTP POST
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720658
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, что должен возвращать HTTP POST согласно стандарту?
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720667
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое стандарт?
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720668
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА что такое стандарт? О, сразу видно человека, кто в MVC из WebForms пришёл. Или вообще из десктопа.
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720673
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAО, сразу видно человека, кто в MVC из WebForms пришёл. Или вообще из десктопа.второе. Вебформы благополучно миновал )
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720698
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttиз контроллера RedirectToActionКстати, это же не то, что я спрашивал, это просто "Returns an HTTP 302 response to the browser".

Я же говорил про желание передать реквест другому действию, а не возвращать что-то клиенту.
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720754
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

httpContext.Server.TransferRequest
...
Рейтинг: 0 / 0
MVC: Переход к другому действию в другом контроллере
    #38720785
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилhttpContext.Server.TransferRequestмда, но это уже не MVC. Спасибо, в общем я забил на этот вариант, сделал иначе
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: Переход к другому действию в другом контроллере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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