0

从带有 AttributeRouting.net 的 MVC4 升级到带有 MVC5 的属性路由的 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,没有抛出异常。

4

1 回答 1

0

啊。。明白了!

基于 Kiran 的回答:使用 AttributeRouting 在 WebAPI 中指定默认控制器/操作路由

我将 HomeController 更改为:

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

我摆脱了 MVC Config 默认值。

于 2015-01-15T23:05:00.800 回答