Halo Saya ingin mengembalikan jangkar dari Mvc Controller
Nama pengontrol = DefaultController;
public ActionResult MyAction(int id)
{
return RedirectToAction("Index", "region")
}
Sehingga url saat diarahkan ke index adalah
http://localhost/Default/#region
Yang seperti itu
<a href=#region>the content should be focus here</a>
Saya tidak bertanya apakah Anda bisa melakukannya seperti ini: Bagaimana cara menambahkan tag anchor ke URL saya?
asp.net-mvc
asp.net-mvc-3
asp.net-mvc-4
tersembunyi
sumber
sumber
Jawaban:
Saya menemukan cara ini:
public ActionResult MyAction(int id) { return new RedirectResult(Url.Action("Index") + "#region"); }
Anda juga dapat menggunakan cara verbose ini:
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
sumber
Jawaban bagus gdoron. Berikut cara lain yang saya gunakan (hanya untuk menambah solusi yang tersedia di sini).
return Redirect(String.Format("{0}#{1}", Url.RouteUrl(new { controller = "MyController", action = "Index" }), "anchor_hash");
Jelas, dengan jawaban gdoron ini dapat dibuat lebih bersih dengan yang berikut dalam kasus sederhana ini;
return new RedirectResult(Url.Action("Index") + "#anchor_hash");
sumber
Cara sederhana dalam inti dot net
public IActionResult MyAction(int id) { return RedirectToAction("Index", "default", "region"); }
Hasil di atas / default / index # region . Parameter ke-3 adalah fragmen yang ditambahkan setelah #.
Microsoft docs - ControllerBase
sumber
Untuk memperluas jawaban Squall: Menggunakan interpolasi string membuat kode lebih bersih. Ini juga berfungsi untuk tindakan pada pengontrol yang berbeda.
return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");
sumber