Bonjour, je veux retourner une ancre de Mvc Controller
Nom du contrôleur = DefaultController;
public ActionResult MyAction(int id)
{
return RedirectToAction("Index", "region")
}
Pour que l'URL dirigée vers l'index soit
http://localhost/Default/#region
Pour que
<a href=#region>the content should be focus here</a>
Je ne demande pas si vous pouvez le faire comme ceci: Comment puis-je ajouter une balise d'ancrage à mon URL?
J'ai trouvé ça:
public ActionResult MyAction(int id)
{
return new RedirectResult(Url.Action("Index") + "#region");
}
Vous pouvez également utiliser cette méthode détaillée:
var url = UrlHelper.GenerateUrl(
null,
"Index",
"DefaultController",
null,
null,
"region",
null,
null,
Url.RequestContext,
false
);
return Redirect(url);
Grande 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");
Évidemment, 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");
Un moyen simple en dot net core
public IActionResult MyAction(int id)
{
return RedirectToAction("Index", "default", "region");
}
Les données ci-dessus produisent /default/index # region . Le 3ème paramètre est le fragment qu'il ajoute après un #.
Pour développer la réponse de Squall: l'utilisation de l'interpolation de chaîne permet de nettoyer le code. Il fonctionne également pour les actions sur différents contrôleurs.
return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");