ActionResult 参数始终为 null

ActionResult parameter always null

我试图在我的控制器中定义 RouteAttribute,但该值始终为 null。我试过的东西:

 [HttpGet]
 [Route("User/ChangePassword/{code:guid}")]
 public ActionResult ChangePassword(Guid code)
 {
     return View();
 }

 URL:
 http://localhost:59635/User/ChangePassword/c809619-4451-4e60-86ca-3bf7159c6d15

我得到的代码总是空的,即使我输入了一个字符串。 Ps。该参数是必需的,没有可选的,有什么想法吗?

确保在注册默认(或区域)路由之前调用注册属性路由。应该看起来像这样...

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapMvcAttributeRoutes();

AreaRegistration.RegisterAllAreas();

routes.MapRoute(
    "Default",                                              // Route name
    "{controller}/{action}/{id}",                           // URL with parameters
    new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);