使用属性路由从使用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,没有异常被抛出。
答案 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的默认设置。