路由问题ASP.net MVC 4没有重定向到索引操作

本文关键字:重定向 索引 操作 问题 ASP net MVC 路由 | 更新日期: 2023-09-27 18:08:46

当我尝试访问控制器上的索引页时,如果我使用这个URL格式:

mydomain/taux/index

这工作,并打开Index页面。但是如果我使用这个url格式(我不添加Index动作到url)

 mydomain/taux/

我得到"404未找到",但通常它应该工作,并自动重定向到索引页。

如何解决?

Taux控制器:
// GET: /Taux/
public ActionResult Index()
{
    var taux = db.TAUX.Include(t => t.CATEGORIE).Include(t => t.GARANTIE);
    return View(taux.ToList());
}

RouteConfig.cs:

public class RouteConfig
{
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
            );
        }
}

路由问题ASP.net MVC 4没有重定向到索引操作

这是因为您的默认操作设置为Login。如果你想链接mydomain/taux/重定向到Indext action

,你需要将其设置为Index

如果你想让重定向只针对这个特定的控制器,你可以使用以下路由定义:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
        name: "Taux",
        url: "Taux/{action}/{id}",
        defaults: new { controller = "Taux", action = "Index", id = UrlParameter.Optional }
    );
    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
    );
}