使用“RedirectToAction”从控制器重定向到哈希

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用“RedirectToAction”从控制器重定向到哈希相关的知识,希望对你有一定的参考价值。

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

我不是问你能不能这样做:How can I add an anchor tag to my 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。这是我使用的另一种方式(只是在这里添加到可用的解决方案)。

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的答案:使用字符串插值可以使代码更清晰。它也适用于不同控制器上的操作。

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

点网核心的一种简单方法

public IActionResult MyAction(int id)
{
    return RedirectToAction("Index", "default", "region");
}

以上产生/ default / index #region。第三个参数是在#之后添加的片段。

Microsoft docs - ControllerBase

以上是关于使用“RedirectToAction”从控制器重定向到哈希的主要内容,如果未能解决你的问题,请参考以下文章

如何使用命名 URL 映射从控制器重定向?

跨控制器跳转view——RedirectToRoute和RedirectToAction

使用 RedirectToAction 时如何跳过控制器名称?

Cakephp 内部从控制器重定向到另一个控制器

如何从 C# 控制器重定向到 URL(带有自定义标头)

ASP.NET MVC RedirectToAction 在从视图中发布 AJAX 后不起作用