0

我用 MVC 开发了一个网站,但我对地址栏中的链接地址如何显示有一点问题。当我打开网站时,我必须先登录;登录账号后,首页出现了,但是在浏览器地址栏还是有

http://localhost:1413/Account/LogOn

代替

http://localhost:1413/Home

另外,注销后,我被重定向到登录页面,但在地址栏中出现

http://localhost:1413/Account/LogOn 

我想只是

http://localhost:1413/Account/LogOff

我的 Global.asx 代码

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );           
    }

我使用了这种类型的重定向,但结果是一样的:

public ActionResult LogOn()
    {
        if (HttpContext.User.Identity.IsAuthenticated == true)
        {
            return RedirectToAction("Index", "Home");
        }
        return View();
    }
4

2 回答 2

1

您需要像这样使用重定向操作到主页

RedirectToAction("Action", "Controller")

因此,当用户通过身份验证后,您需要将用户重定向到特定控制器。

用户注销时也是如此

于 2013-01-11T13:33:37.787 回答
1

如我所见,您的问题不是路由,因为您的路由工作正常。您的问题是您在控制器帐户中工作。这就是为什么帐户总是出现在您的网址中。如果你想得到这个:

http://localhost:1413/Home

您必须链接到您称为 HomeController.cs 的控制器

我希望你能理解我试图解释的内容。

也许这可以帮助你更多: http: //www.codeproject.com/Articles/190267/Controllers-and-Routers-in-ASP-NET-MVC-3

于 2013-01-11T13:34:53.813 回答