web-dev-qa-db-fra.com

Retour à la page précédente dans ASP.Net Core MVC

Sur ma page de détail du client, j'ai un bouton pour modifier l'enregistrement du client qui redirige vers une page d'édition. J'ai un lien "retourner aux détails du client" sur la page d'édition, dans lequel je souhaite rediriger l'utilisateur vers la page de détails du client précédente.

<a asp-controller="Client" asp-action="Detail" asp-route-id="@Model.ClientID">Return to client detail</a>

Actuellement, cela fonctionne comme prévu, mais prend du temps supplémentaire car il recharge la page de détail à partir de zéro (c'est-à-dire qu'il relance toutes les requêtes Db). Étant donné que l'utilisateur annule simplement l'édition sans modifier l'état du client, je souhaite retourner l'utilisateur à la page de détail précédente sans avoir à répéter l'action du contrôleur.

En gros, je veux simuler le bouton Précédent du navigateur (pour améliorer la réactivité), mais je ne sais pas comment le mettre en œuvre ni si c'est une bonne pratique de le faire. Quelques conseils seraient appréciés.

Merci

6
OjM

Vous pouvez utiliser 

<a href='javascript:history.go(-1)'>Return to client detail</a>

ou onclick

<a href="##" onClick="history.go(-1); return false;"> Return to client detail</a> 
8
Balaji Marimuthu

Tu sais quoi? Je déteste JS, je vais donc écrire une réponse avec le côté serveur. Le référent HTTP est un champ d’en-tête HTTP qui identifie l’adresse de la page Web liée à la ressource demandée. Il suffit donc de lire cela et de passer à voir (rappelez-vous toujours de XSS et de la validation, l’utilisateur peut facilement usurper - requête HTTP)

En action contrôleur

if(Request.Headers["Referer"] != null)
{
    ViewData["Reffer"] = Request.Headers["Referer"].ToString();
}

En vue (rasoir)

@if(!string.IsNullOrWhiteSpace(ViewData["Reffer"]))
{
    <a href="@ViewData["Reffer"]">Return to client detail</a>
}
7
J. Doe

Je pense que vous devez vous débarrasser de l’idée de passer par le contrôleur. Si vous avez besoin de parcourir le plus rapidement possible avec asp net core code sur href, vous pouvez essayer ceci.

 <a asp-area="" onclick="history.go(-1);">Return to client detail</a>
0
touinta

Ça devrait être comme ça 

<input type="button" onclick= "history.go(-1)" value="Return to client detail" />
0
Zahid Mustafa