Frage

Ich versuche, eine Verbindung mit Url.Action zu schaffen, die Enden mit einem #something ; Ich nehme an, es ist etwas in den Routen Werten dies richtig zu machen, aber ich kann es nicht mit Google finden.

Bisher habe ich versucht Url.Action("action", "controller", new {id="something", Area="area"}). Die resultierende Verbindung ist das erwartete / action / Controller / Gebiet, aber ich kann die #something am Ende nicht heften.

URL-weise, könnte ich wahrscheinlich zu sagen <a href="<%= Url.Action(..) %>#something"> weg aber das macht mich nicht als besonders schön schlagen; Ich bin auf der Suche nach einer besseren Lösung.

War es hilfreich?

Lösung

Es gibt keine Überlastung der Url.Action() Methode, die dies für Dich tut. Ether Sie haben es in der Art und Weise zu tun, schlagen Sie (indem sie einfach nach dem Aufruf Url.Action() Zugabe) oder eine eigene Extension-Methode erstellen.

Ihre Erweiterungsmethode kann wie folgt aussehen:

public static MvcHtmlString Action(this UrlHelper urlHelper, string action, string controller, string hash)
{
    return string.Format("{0}#{1}", urlHelper.Action(action, controller), hash);
}

Andere Tipps

Sie sollten eine der LinkExtensions.ActionLink Methoden. Dokumentation finden Sie hier: http://msdn.microsoft.com /en-us/library/system.web.mvc.html.linkextensions.actionlink.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top