将所有路由重定向到主页面,但两条路由除外

时间:2016-01-19 15:40:04

标签: asp.net-mvc redirect model-view-controller routing

在mvc 4应用程序中,我需要将用户重定向到主页面,登录和注册页面除外。

每当请求到达时,除了登录或注册,我都需要将用户永久重定向到主页。

例如

www.example.com/home/contact

应重定向到     www.example.com

只有这两个地址可供用户使用:

www.example.com/user/login
www.example.com/user/register

我怎样才能以最短的方式处理这个问题。我不想改变所有的控制器方法。

2 个答案:

答案 0 :(得分:2)

您创建重定向控制器

public class RedirectController : Controller
{

    public ActionResult News()
    {
        return RedirectPermanent("/News");
    }
}
在你的RouteConfig中为你的网址制作路线

       routes.MapRoute(
          name: "userlogin",
          url: "/user/login",
          defaults: new { controller = "User", action = "Login" }
       );

       routes.MapRoute(
          name: "UserRegister",
          url: "/user/register",
          defaults: new {  controller = "User", action = "register" }
        );

       MapRoute("Default", new {controller="Redirect", action="News"});

这样一切都会重定向,除了你的2个网址。

答案 1 :(得分:0)

javascript我建议使用此方法。

window.location.replace(...)