无法删除控制器名称MVC4

时间:2014-12-31 06:07:17

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

我正在MVC4工作,我需要将某个用户下的用户重定向到LogOut。我在.js文件中使用重定向。但是当我尝试重定向时,routing是不合适的。它会添加到现有controller并抛出错误。

//代码

// .cshtml:

<script type="text/javascript">
    var logoutUrl = '@Url.Action("LogOut", "Account")';
</script>

//控制器:

 [AllowAnonymous]
        public ActionResult LogOut()
        {
            FormsAuthentication.SignOut();
            return RedirectToAction("Login", "Account", null);
        }

// JS:

  window.location.href = logoutUrl;

当我尝试重定向时,用户将在页面

/Home/Index

但是,重定向后会转到

/Home/Account/LogOut

而不是/Account/LogOut

我的routeConfig,

 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
            );

        }
这引起了我的错误。但我需要从网址中删除Home并重定向到Account/LogOut

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:0)

请确保您获取正确的网址或用于测试目的,只需使用硬编码的网址即可 并尝试一次

var logoutUrl = '/Account/LogOut';

PS:如果可以的话,我会评论