Witam Chcę zwrócić kotwicę z kontrolera MVC
Nazwa kontrolera = DefaultController;
public ActionResult MyAction(int id)
{
return RedirectToAction("Index", "region")
}
Tak więc adres URL po przekierowaniu do indeksu to
http://localhost/Default/#region
Po to aby
<a href=#region>the content should be focus here</a>
Nie pytam, czy możesz to zrobić w następujący sposób : Jak dodać znacznik kotwicy do mojego adresu URL?
Odpowiedzi:
Znalazłem w ten sposób:
public ActionResult MyAction(int id) { return new RedirectResult(Url.Action("Index") + "#region"); }
Możesz także użyć tej szczegółowej metody:
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
źródło
Świetna odpowiedź, gdoron. Oto inny sposób, którego używam (tylko po to, aby dodać do dostępnych tutaj rozwiązań).
return Redirect(String.Format("{0}#{1}", Url.RouteUrl(new { controller = "MyController", action = "Index" }), "anchor_hash");
Oczywiście, z odpowiedzią gdorona, można by to uprościć z następującymi w tym prostym przypadku;
return new RedirectResult(Url.Action("Index") + "#anchor_hash");
źródło
Prosty sposób na rdzeń z siatki
public IActionResult MyAction(int id) { return RedirectToAction("Index", "default", "region"); }
Powyższe daje / default / index # region . Trzeci parametr to fragment, który dodaje po #.
Microsoft Docs - ControllerBase
źródło
Aby rozwinąć odpowiedź Squalla: użycie interpolacji ciągów zapewnia czystszy kod. Działa również w przypadku działań na różnych kontrolerach.
return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");
źródło