Attribut-Routing funktioniert in Bereichen nicht

Szenario: Auf meiner ASP.NET MVC 5-Site befindet sich ein Formularbereich.

Ich versuche, zu der Detailaktion umzuleiten, die eine benutzerdefinierte Route verwendet, die mit der neuen Attribut-Routing-Funktion definiert wurde.

Die RedirectToAction:

return RedirectToAction("Details", new { slug });

Die Aktion, zu der ich umleite:

[HttpGet]
[Route("forms/{slug}")]
public ActionResult Details(string slug)
{
    var form = FormRepository.Get(slug);

    ...

    return View(model);
}

Ich würde eine Weiterleitung erwartenhttp://localhost/forms/my-slug Stattdessen leitet mich die App weiter zuhttp://localhost/Forms/Details?slug=my-slug.

Dies bedeutet, dass das Attributrouting nicht funktioniert.

Wie kann das gelöst werden?

Ich habe die routes.MapMvcAttributeRoutes () hinzugefügt; Zeile zu meiner RouteConfig:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapMvcAttributeRoutes();

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

Und hier ist mein Application_Start ():

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage