Здравствуйте, я хочу вернуть привязку из контроллера MVC
Имя контроллера = DefaultController;
public ActionResult MyAction(int id)
{
return RedirectToAction("Index", "region")
}
Так что URL-адрес при направлении на индекс
http://localhost/Default/#region
Так что
<a href=#region>the content should be focus here</a>
Я не спрашиваю, можете ли вы сделать это вот так: как мне добавить тег привязки к моему URL?
Ответы:
Я нашел такой способ:
public ActionResult MyAction(int id) { return new RedirectResult(Url.Action("Index") + "#region"); }
Вы также можете использовать этот подробный способ:
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
источник
Отличный ответ гдорон. Вот еще один способ, который я использую (просто чтобы добавить к имеющимся здесь решениям).
return Redirect(String.Format("{0}#{1}", Url.RouteUrl(new { controller = "MyController", action = "Index" }), "anchor_hash");
Очевидно, что с ответом gdoron это можно было бы сделать более чистым в этом простом случае:
return new RedirectResult(Url.Action("Index") + "#anchor_hash");
источник
Простой способ в ядре dot net
public IActionResult MyAction(int id) { return RedirectToAction("Index", "default", "region"); }
Вышеуказанное дает / default / index # region . Третий параметр - это фрагмент, который добавляется после символа #.
Microsoft docs - ControllerBase
источник
Чтобы развернуть ответ Скволла: использование строковой интерполяции делает код более чистым. Это также работает для действий на разных контроллерах.
return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");
источник