从mvc4迁移到mvc5,属性路由不起作用

时间:2013-11-03 21:56:43

标签: asp.net asp.net-mvc asp.net-web-api asp.net-mvc-5 asp.net-web-api-routing

我有一个使用SimpleMembershipProvider的asp.net mvc4 / webapi,我正在尝试使用新的asp.net Identity更新到mvc5 / webapi2。我更新了所有程序集,删除了过时的程序集,删除了我的旧AuthController,并根据vs2013的基本mvc5应用程序创建了一个新程序集。更正了所有错误并更改了一点我的javascript以指向新控制器。我不需要迁移用户,所以只需删除数据库并让它创建一个新数据库。除了一个细节之外,一切正常:

No HTTP resource was found that matches the request URI 'http://localhost:12128/api/Account/Register'.

如果我从[Route("Register")]方法中移除Register,则可以正常运行。但我想使用属性路由...所以我认为我的问题是,什么确实启用mvc 5上的属性路由?也许我在web.config上伪造一些东西,或者在项目中调用一些方法甚至一些旧程序集......但我发现我的应用程序和基本应用程序之间没有任何区别。任何提示都会很棒。

1 个答案:

答案 0 :(得分:0)

您是否在MapHttpAttributeRoutes()上致电HttpConfiguration分机?请注意,传统路由永远不能访问使用属性路由修饰的控制器/操作。如果您希望传统路由可以访问这些属性,则必须从所有控制器/操作中明确删除属性路由特定属性。

此外,您可能需要对MVC4应用程序进行其他更改才能升级到MVC5。以下博客文章可以帮助您:
http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2