使用“属性路由”升级到MVC5后,默认路由不起作用

时间:2015-01-15 22:54:13

标签: attributerouting asp.net-mvc-5.2

使用属性路由从使用AttributeRouting.net的MVC4升级到MVC5后,我似乎无法使默认路由正常工作,因此http://server默认为http://server/home/index。直接浏览/home//home/index可以正常工作。

对于路由配置,我有:

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapMvcAttributeRoutes();
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

HomeController声明如下所示:

// Controller
[RoutePrefix("home")]
public class HomeController : MvcControllerBase
....
    // Action
    [HttpGet, Route, Route("index")]
    public ActionResult Index()
    {
   .....

我不确定在哪里检查。我已经注释掉了Global中的所有内容,并禁用了所有WebActivator激活的项目。

想法?响应是404,没有异常被抛出。

1 个答案:

答案 0 :(得分:0)

啊......明白了!

基于Kiran对Specify default controller/action route in WebAPI using AttributeRouting

的回答

我将HomeController更改为:

// Controller
public class HomeController : MvcControllerBase
....
    // Action
    [HttpGet, Route, Route("home"), Route("home/index")]
    public ActionResult Index()
    {
....

我摆脱了MVC Config的默认设置。