Hola, quiero devolver un ancla de Mvc Controller
Nombre del controlador = DefaultController;
public ActionResult MyAction(int id)
{
return RedirectToAction("Index", "region")
}
Para que la URL cuando se dirija al índice sea
http://localhost/Default/#region
Así que eso
<a href=#region>the content should be focus here</a>
No pregunto si puede hacerlo así: ¿Cómo puedo agregar una etiqueta de anclaje a mi URL?
Respuestas:
Encontré de esta manera:
public ActionResult MyAction(int id) { return new RedirectResult(Url.Action("Index") + "#region"); }
También puede utilizar esta forma detallada:
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
fuente
Gran respuesta gdoron. Aquí hay otra forma que uso (solo para agregar a las soluciones disponibles aquí).
return Redirect(String.Format("{0}#{1}", Url.RouteUrl(new { controller = "MyController", action = "Index" }), "anchor_hash");
Obviamente, con la respuesta de gdoron, esto podría hacerse más limpio con lo siguiente en este simple caso;
return new RedirectResult(Url.Action("Index") + "#anchor_hash");
fuente
Una forma sencilla de dot net core
public IActionResult MyAction(int id) { return RedirectToAction("Index", "default", "region"); }
Lo anterior produce / default / index # region . El tercer parámetro es un fragmento que se agrega después de un #.
Microsoft docs - ControllerBase
fuente
Para ampliar la respuesta de Squall: el uso de la interpolación de cadenas genera un código más limpio. También funciona para acciones en diferentes controladores.
return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");
fuente