ASP.Net MVC RedirectToAction z kotwicą


84

Mam następujący problem: Na przykład mam taką trasę:

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

Czy istnieje sposób za pomocą metody RedirectToAction, aby przejść do adresu URL w następujący sposób:

forums/thread/{threadOid}/last#postOid


2
Aby uzyskać ASP.NET MVC Core, zobacz stackoverflow.com/q/55741977/11683 .
GSerg

Odpowiedzi:


153

Myślę, że powinieneś użyć tej Redirectmetody, Url.RouteUrlaby to osiągnąć.

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

Podobnie jak ta odpowiedź, ale czy nie powoduje to renderowania do klienta, a następnie nowego żądania do serwera, po którym następuje kolejne renderowanie? Jeśli tak, czy można tego uniknąć w inny sposób?
Jacques

1
To rozwiązanie jest bardzo trudne do przetestowania, ale może być jedynym rozwiązaniem.
Josh Kodroff,

20

Kolejna alternatywa z Url.Action:

return Redirect(Url.Action("ShowThreadLastPostPage", "Thread", new { threadOid = threadOid }) + "last#" + postOid);
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.