84 votes

Redirection vers un hachage à partir du contrôleur à l'aide de "RedirectToAction"

Bonjour, je veux retourner une ancre de Mvc Controller

Nom du contrôleur = DefaultController;

 public ActionResult MyAction(int id)
{
        return RedirectToAction("Index", "region")
}
 

Alors que l'URL, lorsqu'il est dirigé vers index, est

 http://localhost/Default/#region
 

Pour que

 <a href=#region>the content should be focus here</a>
 

Je ne vous demande pas si vous pouvez le faire comme ceci: comment puis-je ajouter une balise d'ancrage à mon URL?

131voto

gdoron Points 61066

J'ai trouvé ça:

 public ActionResult MyAction(int id)
{
    return new RedirectResult(Url.Action("Index") + "#region");
}
 

Vous pouvez également utiliser cette manière verbeuse:

 var url = UrlHelper.GenerateUrl(
    null,
    "Index",
    "DefaultController",
    null,
    null,
    "region",
    null,
    null,
    Url.RequestContext,
    false
);
return Redirect(url);
 

http://msdn.microsoft.com/en-us/library/ee703653.aspx

14voto

Squall Points 61

Super réponse gdoron. Voici une autre façon que j'utilise (juste pour ajouter aux solutions disponibles ici).

 return Redirect(String.Format("{0}#{1}", Url.RouteUrl(new { controller = "MyController", action = "Index" }), "anchor_hash");
 

De toute évidence, avec la réponse de gdoron, cela pourrait être rendu plus propre avec ce qui suit dans ce cas simple;

 return new RedirectResult(Url.Action("Index") + "#anchor_hash");
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X