ASP.NET MVC2 и маршрутизация - PullRequest
2 голосов
/ 26 июля 2010

У меня есть следующий маршрут:

routes.MapRoute(
    "edit_product",                                // Route name
    "Product/Edit/{productId}",                    // URL with parameters
    new { controller = "Product", action = "Edit", 
          productId = UrlParameter.Optional }      // Parameter defaults
);

Почему этот код работает:

<%: Html.ActionLink("Edit", "Edit", 
    new { controller = "Product", productId = product.ProductId }) %>

А это не так:

<%: Html.ActionLink("Edit", "Edit", "Product", 
    new { productId = product.ProductId }) %>

Ответы [ 2 ]

4 голосов
/ 26 июля 2010
<%: Html.ActionLink("Edit", "Edit", "Product", 
    new { productId = product.ProductId } , null) %>

Вам необходим нулевой параметр

У Actionlink нет (LinkText, Actionname, Controller, Parameters), но есть (LinkText, Actionname, Controller, Parameters, htmlAttributes)

1 голос
/ 26 июля 2010

Первым разрешается эта перегрузка

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    Object routeValues
)

Нет перегрузки ActionLink, которая принимает три строки и объект.Ближайшим является этот , который принимает две строки и два объекта:

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    Object routeValues,
    Object htmlAttributes
)

, поэтому я не ожидаю, что он будет делать то, что вы хотите.

...