Как получить Html.ActionLink для возврата ссылки без строки запроса? - PullRequest
0 голосов
/ 17 декабря 2011

всякий раз, когда я использую Html.ActionLink, он всегда дает мне параметр как?вместо того, чтобы быть отдельно от URL.

Например:

@Html.ActionLink("Edit", "Edit", new { Username = (string)item.username })

Дает мне:

/Edit?Username=username

Вместо:

/Edit/Username 

как будто я определил это в моем контроллере.

Может кто-нибудь сказать мне, как получить другой путь?Вместо пути.

Спасибо

Ответы [ 2 ]

2 голосов
/ 17 декабря 2011

Вероятно, вам нужно зарегистрировать маршрут в global.asax, чтобы определить параметр Username:

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

    routes.MapRoute(
        "EditStuff",
        "{controller}/{action}/{Username}",
        new { controller = "YourControllerName", action = "Edit" }
    );

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

}
0 голосов
/ 17 декабря 2011

Я использую AttributeRouting для этих вещей, с его помощью вы можете украсить свой контроллер фактическим путем, например так:

[GET("/Edit/{Username}")]
public ActionResult Edit(string Username)
...