Почему вы можете выполнять логику контроллера другого контроллера из представления (renderView), а не из контроллера? - PullRequest
0 голосов
/ 29 октября 2019

Я медленно конвертирую старое приложение asp в asp.net MVC. Устаревшая система выполняла все из одной страницы драйвера, которая имела логику для отображения содержимого на основе QueryString. А пока я хочу иметь контроллер, который делает то же самое, поэтому мне не нужно переделывать все ссылки. Было бы здорово, если бы я мог вызвать действие основного драйвера, которое направило бы меня к соответствующему контроллеру / действию или направило бы мне на действие iframe, которое просто отображает контент из исходной системы.

Однако я нахожучто я не могу создать эту логику из контроллера. Кажется, что из контроллера лучшая доступная опция - redirectToAction, но этот метод теряет все параметры запроса и формы, которые были переданы при первоначальном вызове.

С другой стороны, я нахожу, что если я простовыполнить логику в представлении (полностью обходя контроллер) Я могу вызвать Html.RenderAction с контроллером и желаемым действием, не передавая никаких дополнительных параметров, и я могу сохранить, по крайней мере, исходные параметры, которыебыли использованы при вызове страницы драйвера для последующего использования в логике действия нового контроллера. Затем я просто возвращаю результат обратно в представление.

Это работает, и я пока что согласен с ним, но мне интересно, почему эта функциональность недоступна там, где она будет с тех пор, чтобы иметь ее;Контроллер.

Любой вход будет оценен. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...