Как я могу добавить тег привязки к своему URL? - PullRequest
19 голосов
/ 26 октября 2011

MVC 3.net Я хочу добавить привязку в конец URL.

Я попытался включить строку запроса привязки, но хеш '#' меняется на% 23 или что-то подобное в URL.

Есть ли способ обойти это?

1 Ответ

36 голосов
/ 26 октября 2011

Перегрузка хелпера ActionLink , позволяющая указать фрагмент:

@Html.ActionLink(
    "Link Text",           // linkText
    "Action",              // actionName
    "Controller",          // controllerName
    null,                  // protocol
    null,                  // hostName
    "fragment",            // fragment
    new { id = "123" },    // routeValues
    null                   // htmlAttributes
)

выдаст (при условии маршрутов по умолчанию):

<a href="/Controller/Action/123#fragment">Link Text</a>

UPDATE:

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

public ActionResult Index()
{
    var url = UrlHelper.GenerateUrl(
        null,
        "Action",
        "Controller",
        null,
        null,
        "fragment",
        new RouteValueDictionary(new { id = "123" }),
        Url.RouteCollection,
        Url.RequestContext,
        false
    );
    return Redirect(url);
}
...