当我尝试访问控制器上的索引页面时,如果我使用此URL格式:
mydomain/taux/index
此操作正常,Index
页面已打开。但是,如果我使用此网址格式(我不会将Index
操作添加到网址)
mydomain/taux/
我收到了“404 not found”,但通常它应该可以正常工作并将我自动重定向到索引页面。
如何解决它?
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 }
);
}
}
答案 0 :(得分:2)
这是因为您的默认操作设置为“登录”。如果要将链接mydomain / taux /重定向到Indext操作,则需要将其设置为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 }
);
}