c# - 如何使/Home/Index重定向到/

标签 c# asp.net-mvc routes

给定默认路由,以下任一 URL 将导航到 Home Controller 的 Index 方法:

 1. http://localhost
 2. http://localhost/Home/Index

我想这样做,以便当用户导航到localhost/Home/Index时,他们将被重定向到localhost呈现未找到的结果。 `

我的目标是禁用Home/Index地址而不删除默认路由(因为它在其他地方很有用。

我想实现这一点,因为我的 JS 中有一些硬编码的相对 URL,它们仅在相对于 localhost 时才有效。

顺便说一句,默认路由如下所示:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

最佳答案

在您的路线文件中,添加以下内容:

 routes.MapRoute(
         name: "HomeRedirect",
         url: "Home/Index",
         defaults: new { controller = "Home", action = "Index", redirect = true }
 );

在你的 HomeController 中

   public ActionResult Index(bool? redirect)
    {
        if (redirect.HasValue && redirect.Value)
            return RedirectToActionPermanent("Index", new { redirect = null as object });
        return View();
    }

关于c# - 如何使/Home/Index重定向到/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25353924/

相关文章:

javascript - 子组件的下一个js父路由组件

c# - 按Enter键时如何避免选择文本框值?

c# - 需要比较单元格值然后根据结果更改背景

javascript - 为什么没有触发超链接上的点击事件?

c# - 在 C# 和 javascript 中避免重复代码的任何想法

node.js - 如何让 node.js 返回没有文件扩展名的页面?

c# - WPF ComboBox 通过代码阻止选择项上的事件

c# - 大型 WCF Web 服务请求因 (400) HTTP Bad Request 而失败

c# - 同一命名空间如何在具有不同项目的单个解决方案中工作

带有 System.Web.Routing 的 AngularJS