Как мне использовать метод Server.Transfer в asp.net MVC? - PullRequest
6 голосов
/ 11 мая 2009

Я пытаюсь использовать его для страницы входа.

if (Session["UserID"] == null)
     Server.Transfer("/Account/Login", true);

Но я получаю Исключение -> Ошибка при выполнении дочернего запроса /Account/Login.

Ответы [ 3 ]

10 голосов
/ 11 ноября 2009

Вы делаете это!

        return new MVCTransferResult(...);

Пожалуйста, смотрите мой ответ (связанный), а также принятый ответ.

9 голосов
/ 11 мая 2009

Чтобы использовать метод передачи с сервера, вы можете посмотреть this от Саймона Уивера, но в контексте вашего вопроса я бы вместо этого использовал действие перенаправления.

RedirectToAction(new {
   controller="Account", 
   action="Login"
});

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

RedirectToAction( new {
   controller="Account",
   action="Login",
   new RouteValueDictionary { 
      {"actionToGoBackTo", "theActionName"},
      {"controllerToGoBackTo", "theControllerName"}
   }); 

обратите внимание, что действие Login должно принимать два строковых аргумента, actionToGoBackTo и controllerToGoBackTo.

5 голосов
/ 11 июля 2015

Вы должны получить точно такой же результат, какой вы хотите в Server.Transfer.

public ActionResult Index() {
    ......
      var url = "/MyContoller?param=xxx";
      Server.TransferRequest(url, true);
      return new EmptyResult();
}
...