MVC3 рекомендуемый контроллер, повторное использование запроса действия - PullRequest
0 голосов
/ 25 ноября 2011

В приложении MVC3, каков рекомендуемый метод для хранения сведений о контроллере, действии и запросах страницы, а затем повторно использовать их в actionlink на следующей странице?

, например, со страницы ~ / Home/ BlogsByTag? Tag = Cloud% 20Сервисы, перечисляющие серию блогов, каков «лучший» способ получения Controller, Action & query и как их затем применить к действующей ссылке «Вернуться к списку» на последующей странице редактирования(~ / Admin / Редактировать /? Блог = 1234)

Ответы [ 2 ]

0 голосов
/ 25 ноября 2011

Вы можете использовать:

Url.RouteCollection["controller"]
Url.RouteCollection["action"]
...

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

Request.QueryString ["variable1"]

В качестве альтернативы вы можете объявить контроллер:

public ActionResult MyController(string controller, string action, string variable...)

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

Затем вы можете сохранить эту информацию (или полный URL-адрес), например, на Session["refurl"], которая действительна до конца сеанса пользователя

0 голосов
/ 25 ноября 2011

Если я вас правильно понял, вы хотите сгенерировать ActionLink с URL-адресом со страницы, на которую ссылаетесь?

Вы можете прочитать реферер из запроса в терминах полного URL-адреса:

Request.UrlReferrer

Если вы хотите иметь доступ к элементам действия, контроллера и запроса, вы должны передать их в ссылку в качестве параметров.Например:

Html.ActionLink("Linktext", "Edit", "Admin", null, 
                               new {
                                  Blog = 1234, 
                                  ReferringController = "Home",
                                  ReferringAction = "BlogsByTag",
                                  ReferringQueryParams = ...
                               });

Затем вы можете прочитать эти значения в действии редактирования и передать их в представление для создания обратной ссылки.

Но, возможно, использование history.back() прощеподход.

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