如何在asp.net MVC中使用Server.Transfer方法?

时间:2009-05-11 08:45:40

标签: asp.net-mvc asp.net-mvc-routing

我正在尝试将其用于登录页面。

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

但我得到了例外 - >执行子请求/帐户/登录时出错。

3 个答案:

答案 0 :(得分:10)

You do this!

        return new MVCTransferResult(...);

请查看我的答案(链接)以及接受的答案。

答案 1 :(得分:9)

要使用服务器转移方法,您可以查看Simon Weaver的this,但在您的问题中,我会使用重定向操作。

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

让它告诉登录控制器在哪里返回尝试

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

请注意,Login操作需要使用两个字符串参数:actionToGoBackTo和controllerToGoBackTo。

答案 2 :(得分:5)

您应该获得与Server.Transfer中所需的完全相同的结果。

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