我用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();
}
答案 0 :(得分:1)
你需要像这样使用重定向动作到主页
RedirectToAction("Action", "Controller")
所以当用户通过身份验证时,您需要将用户重定向到特定的控制器。
用户注销时也是如此
答案 1 :(得分:1)
正如我所看到的,您的问题不是路由导致您的路由正常工作。您的问题是您在控制器帐户中工作。这就是为什么帐户总会出现在您的网址中。如果你想得到这个:
http://localhost:1413/Home
您必须链接到您调用HomeController.cs
的控制器我希望你理解我试图解释的内容。
也许这可以帮到你更多: http://www.codeproject.com/Articles/190267/Controllers-and-Routers-in-ASP-NET-MVC-3