Vamos supor que eu tenho algumas páginas
some.web/articles/details/5
some.web/users/info/bob
some.web/foo/bar/7
que pode chamar um controlador utilitário comum como
locale/change/es
ou authorization/login
Como faço para obter esses métodos ( change
, login
) para redirecionar para as ações anteriores ( details
, info
, bar
), enquanto passando os parâmetros anteriores a eles ( 5
, bob
, 7
)?
Em resumo: como redireciono para a página que acabei de visitar após executar uma ação em outro controlador?
asp.net-mvc
routing
redirect
adolfojp
fonte
fonte
Request.Url.AbsolutePath.ToString()
como oAccountController
'sLogOn
método contém verificações para início da URL com'/'
, etc.GET Index
entãoGET Edit
. O URL de referência é então,Index
mas quando o usuário fazPOST Edit
o referenciador agora éEdit
da solicitação GET anterior. Como posso garantir quePOST Edit
sabe o URL ao qual o usuário se referiuGET Edit
?Se você deseja redirecionar a partir de um botão na tela, você pode usar:
fonte
Se você não está preocupado com o teste de unidade, basta escrever:
fonte
Uma sugestão de como fazer isso, de modo que:
.
Você pode usar o redirecionamento dentro da visualização da seguinte maneira:
fonte
No Mvc usando html simples na View View com java script onclick
Isso funciona muito bem. a esperança ajuda alguém.
@JuanPieterse já respondeu usando, por
@Html.ActionLink
isso, se possível, alguém pode comentar ou responder usando@Url.Action
fonte
Passe um parâmetro returnUrl (url codificado) para as ações de alteração e login e redirecione dentro para esse returnUrl especificado. Sua ação de login pode ser algo como isto:
fonte
Estou usando o .Net Core 2 MVC, e este funcionou para mim, no uso do controlador
HttpContext.Request.Headers["Referer"];
fonte
Você pode retornar à página anterior usando a
ViewBag.ReturnUrl
propriedadefonte
Para construir dinamicamente o returnUrl em qualquer View, tente o seguinte:
Relacionado: URL de retorno dinâmico do MVC3 (o mesmo, mas de qualquer controlador / ação)
fonte
Para o ASP.NET Core, você pode usar o atributo asp-route- *:
Outro exemplo de detalhes: imagine que você tem um controlador de veículo com ações
Índice
Detalhes
Editar
e você pode editar qualquer veículo a partir do Índice ou a partir de Detalhes, portanto, se você clicou em editar no índice, deve retornar ao índice após a edição e se clicar em editar nos detalhes, deve retornar aos detalhes após a edição.
No seu controlador:
fonte