こんにちはMvc Controllerからアンカーを返したい
コントローラー名= 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>
次のようにできるかどうかは尋ねません: RLにアンカータグを追加するにはどうすればよいですか?
私はこの方法を見つけました:
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);
素晴らしい答えgdoron。私が使用する別の方法を次に示します(ここで利用可能なソリューションに追加するためだけです)。
return Redirect(String.Format("{0}#{1}", Url.RouteUrl(new { controller = "MyController", action = "Index" }), "anchor_hash");
明らかに、gdoronの答えを使えば、この単純なケースでは次のようにクリーナーになります。
return new RedirectResult(Url.Action("Index") + "#anchor_hash");
ドットネットコアの簡単な方法
public IActionResult MyAction(int id)
{
return RedirectToAction("Index", "default", "region");
}
上記は/ default/index#regionを生成します。 3番目のパラメーターはfragmentで、#の後に追加します。
Squallの答えを拡張するには:文字列補間を使用すると、コードが簡潔になります。また、さまざまなコントローラー上のアクションに対しても機能します。
return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");