【问题标题】:Redirect all routes to main page except two routes将所有路由重定向到主页,除了两条路由
【发布时间】:2016-04-25 04:02:17
【问题描述】:

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

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

例如

www.example.com/home/contact

应该重定向到 www.example.com

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

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

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

【问题讨论】:

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


【解决方案1】:

你创建重定向控制器

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 个网址之外,所有内容都会重定向。

【讨论】:

    【解决方案2】:

    javascript我推荐使用这种方法。

    window.location.replace(...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-14
      • 2016-07-12
      • 2020-09-09
      • 2021-11-06
      • 1970-01-01
      • 2019-02-01
      • 2018-01-12
      • 2015-05-02
      相关资源
      最近更新 更多