アンカー付きASP.NetMVC RedirectToAction


84

私は次の問題を抱えています:例えば私はこのようなルートを持っています:

routes.Add(new Route("forums/thread/{threadOid}/last", new MvcRouteHandler())
           Defaults = new RouteValueDictionary(
             new { controller = "Thread", action ="ShowThreadLastPostPage"}),
        Constraints = new RouteValueDictionary(new { threadOid = @"^\d+$" })
    }
);

RedirectToActionメソッドを使用して次のようなURLに移動する方法はありますか?

forums/thread/{threadOid}/last#postOid


2
ASP.NET MVCコアについては、stackoverflow.com / q / 55741977/11683を参照してください。
GSerg

回答:


153

私はあなたがそれを達成するためRedirectに一緒Url.RouteUrlに方法を使うべきだと思います。

return Redirect(Url.RouteUrl(new { controller = "Thread", action = "ShowThreadLastPostPage", threadOid = threadId }) + "#" + postOid);

この回答と同様ですが、これにより、クライアントへのレンダリング、サーバーへの新しいリクエスト、その後の別のレンダリングが発生しませんか?もしそうなら、これを回避する別の方法はありますか?
ジャック

1
このソリューションをテストすることは非常に困難ですが、それが唯一のソリューションである可能性があります。
Josh Kodroff 2015

20

との別の選択肢Url.Action

return Redirect(Url.Action("ShowThreadLastPostPage", "Thread", new { threadOid = threadOid }) + "last#" + postOid);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.