Как добавить тег привязки в свой URL?

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

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

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

Ответ 1

Существует перегрузка помощника 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);
}