使用asp.net属性路由的根路径的默认路由

时间:2013-09-26 04:13:16

标签: asp.net-mvc asp.net-mvc-routing self-hosting visual-studio-2013 owin

我正在使用ASP.NET 5 RC中的属性路由,包含在Visual Studio 2013 RC版本中。

我希望根路径/能够导致规范/Home/Index路径,但我找不到使用属性路由执行此操作的方法。是否有可能,如果不是,如果我也使用OWIN SelfHost,我将如何做?换句话说,我正在HttpConfiguration方法中手动设置我自己的WebApp.Start<T>类(其中T在启动时调用了Configure(IAppBuilder)方法)并且没有通过RouteTable.Routes对象。或者我应该浏览RouteTable.Routes对象?当我尝试时,我没有太多运气......

编辑:这是我到目前为止所尝试的内容:

// normal Web API attribute routes
config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
   name: "DefaultWeb",
   routeTemplate: "{controller}/{action}",
   defaults: new { controller = "Home", action = "Index" }
);

下面的第二次尝试看起来有点可疑,因为我的HttpConfiguration对象与静态RouteTable.Routes对象的关系并不清楚:

// normal Web API attribute routes
config.MapHttpAttributeRoutes();

RouteTable.Routes.MapRoute(
   name: "DefaultWeb",
   url: "{controller}/{action}",
   defaults: new { controller = "Home", action = "Index" }
);

2 个答案:

答案 0 :(得分:27)

您可以像这样设置应用的默认路线:

    [Route("~/", Name = "default")]
    public ActionResult Index() {
        return View();
    }

答案 1 :(得分:1)

对于使用.NET Core 1.x的任何人,您需要执行此操作以及使用Jay的上述答案。

在您的Startup.cs文件中,将其添加到您的Configure方法。

app.UseMvcWithDefaultRoute();

然后,您想要作为默认值的任何控制器操作,将属性[Route("", Name = "default")]

相关问题