MVC 5 Routing-parameter mit @Url.RouteUrl

Habe ich eine ActionResult, ich habe ein routing-Attribut:

[Route("myproduct/{productID}", Name = "myproduct")]
[MvcSiteMapNode(Title = "Products", ParentKey = "products", Key = "myproducts")]
public ActionResult myproducts(int productID) ...

Ich versuche einen link zu den anzeigen über eine RouteUrl:

<a href="@Url.RouteUrl("myproducts", @Model.myproducts[i].productID)">Buy</a>

Den resultierenden html-Code nicht sogar a href:

<a>Buy</a>

Wenn ich entfernen Sie den parameter funktioniert es:

[Route("myproducts", Name = "myproducts")]
[MvcSiteMapNode(Title = "Products", ParentKey = "home", Key = "myproducts")]
public ActionResult myproducts(int productID) ...


<a href="/products/myproducts">Book</a>

Bin ich versucht hinzuzufügen, die parameter falsch? Die Dokumentation empfiehlt, was ich bin versucht.

Route Config:

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 }
        );            
    }
Können Sie uns zeigen Sie Ihre route-Konfiguration? Ich vermute, es ist ein positionelles problem mit, wie Ihre Routen definiert sind. d.h. die default-route {controller}/{action}/{id} (optional) Diese Platzhalter-Namen sind nicht frei wählbare. Aber Sie haben {productId}, die vielleicht vermasselt Ihr routing, die ist, warum Sie nicht immer alles. Was passiert, wenn Sie mit der navigationssteuerung /products/myproducts/45 in Ihrem browser? Ich vermute, dass ein 404.
Ich habe die route-Konfiguration. Ich bin immer 404 auf jede Ableitung der url. Ich habe auch versucht, nur hart codieren der url, statt mit dem @ - Url-tag und jedes mal 404

InformationsquelleAutor Scott | 2015-05-11

Schreibe einen Kommentar