我有一个带有索引视图的登录控制器,我希望在网址http://sitename/login上呈现。它适用于我浏览到http://sitename/login/index但我想从URL中省略索引。这是我的路线配置(默认):
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Dashboards", action = "Dashboard_1", id = UrlParameter.Optional }
);
}
..和控制器:
public class LoginController : Controller
{
// GET: Login
public ActionResult Index()
{
return View();
}
}
答案 0 :(得分:0)
如果您单独离开Default
路线,它就会按照您的要求行事。您只需将action
路由值的默认值设置为Index
。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
或者,您可以插入其他路线来覆盖您的登录控制器。
routes.MapRoute(
name: "Login",
url: "login/{action}/{id}",
defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Dashboards", action = "Dashboard_1", id = UrlParameter.Optional }
);
第三种方法是将LoginController.Index
方法重命名为LoginController.Dashboard_1
,因为这是应用程序中每个控制器的默认操作名称。