UrlHelper.Action: aimerait générer un lien qui se termine par « #something »
-
02-10-2019 - |
Question
Je suis en train de créer un lien avec Url.Action , qui se termine par un #something ; Je présume qu'il ya quelque chose dans les valeurs de la route pour faire correctement, mais je ne pouvais pas trouver avec Google.
Jusqu'à présent, j'ai essayé Url.Action("action", "controller", new {id="something", Area="area"})
. Le lien résultant est prévu / action / contrôleur /, mais je ne peux pas virer de bord le #something à la fin.
Url-sage, je pourrais probablement se contenter de dire <a href="<%= Url.Action(..)
%>#something">
mais cela ne me paraît pas particulièrement agréable; Je suis à la recherche d'une meilleure solution.
La solution
Il n'y a pas de surcharge de la méthode Url.Action()
qui fait cela pour vous. Ether vous devrez le faire de la manière que vous proposez (en ajoutant simplement après l'appel à Url.Action()
) ou créer votre propre méthode d'extension.
Votre méthode d'extension peut ressembler à ceci:
public static MvcHtmlString Action(this UrlHelper urlHelper, string action, string controller, string hash)
{
return string.Format("{0}#{1}", urlHelper.Action(action, controller), hash);
}
Autres conseils
Vous devez utiliser l'une des méthodes de LinkExtensions.ActionLink. La documentation se trouve ici: http://msdn.microsoft.com /en-us/library/system.web.mvc.html.linkextensions.actionlink.aspx