使用“RedirectToAction”redirect到控制器的散列

你好,我想从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

很好的回答gdoron。 这是我使用的另一种方法(只是在这里添加可用的解决scheme)。

 return Redirect(String.Format("{0}#{1}", Url.RouteUrl(new { controller = "MyController", action = "Index" }), "anchor_hash"); 

很明显,在gdoron的回答中,在这个简单的例子中,

 return new RedirectResult(Url.Action("Index") + "#anchor_hash"); 

扩展Squall的答案:使用string插值可以使代码更简洁。 它也适用于不同控制器上的操作。

 return Redirect($"{Url.RouteUrl(new { controller = "MyController", action = "Index" })}#anchor");