Il y a deux façons dont vous pouvez le faire en fonction de ce que vous voulez. Votre propriété HtmlHelper ViewContext aura à peu près tout ce que vous avez besoin de la demande particulière: HttpContext, RequestContext, RouteData, TempData, ViewData, etc.
Pour obtenir le chemin actuel de la demande, essayez helper.ViewContext.HttpContext.Request.Path
. Cela renverrait le chemin de requête réel, probablement "/" ou "/ home/index" si le chemin était explicite dans l'URL.
Je ne suis pas sûr de savoir pourquoi vous cherchez à obtenir "/ home/partial". Comme il s'agit d'une vue partielle, la demande proviendrait toujours d'un autre endroit, par exemple. "/ home/index".
Peu importe, vous pouvez vérifier la RouteData et obtenir l'action (partielle) et le contrôleur, entre autres valeurs de l'itinéraire:
public static string TestHelper(this HtmlHelper helper)
{
var controller = helper.ViewContext.RouteData.Values["controller"].ToString();
var action = helper.ViewContext.RouteData.Values["action"].ToString();
return controller + "/" + action;
}
Si appelé dans votre vue Index (Index.aspx), il retournerait " Accueil/Index ".
Si elle est appelée dans votre vue partielle (Partial.aspx), elle renvoie "Home/Partiel".
Espérons que ça aide.