5 votes

Existe-t-il un équivalent à Response.Redirect("~/Controller/") dans Asp.Net Core 2 ?

Existe-t-il un équivalent à Response.Redirect("~/Controller/") en Asp.Net Core 2 ?

Je ne veux pas utiliser ViewComponent . Au lieu de, je veux appeler un contrôleur et une méthode d'action à partir d'une vue.

@using Jahan.Blog.Web.Mvc.Models
@{
    ViewBag.Title = "Home Page";
}

<header>
    <h1> Blog </h1>
</header>
<div class="blog-description">
    <p>...</p>
</div>

@{ Response.Redirect("~/Article/");}

7voto

avinash Points 90

Essayez ceci dans la méthode du contrôleur :

RedirectToAction("yourActionName", "YourControllerName");

ou :

Url.Action("YourActionName", "YourControllerName");

Ceci peut également être utilisé avec les paramètres définis dans votre fichier AppStart -> RouteConfig.cs

i.e  
routes.MapRoute(
          name: "Default",
          url: "{controller}/{action}/{id}",
          defaults: new { controller = "YourControllerName", action = "YourActionName", id = 
          UrlParameter.Optional }
      );

pour passer des paramètres, il suffit d'ajouter un nouveau mot-clé pour la méthode get

Url.Action("YourActionName", "YourControllerName", new { id = id });

pour l'utilisation de la méthode postale

Url.Action("YourActionName", "YourControllerName", new { "your variable" = id });

0voto

SLaks Points 391154

Vous devez renvoyer un résultat de votre action.

Les vues ne doivent pas contenir ce type de logique ; vous devez déplacer toute cette logique vers une action ou un filtre.

-1voto

McKabue Points 650

Vous êtes redirigés à partir de la vue... une vue en ASP MVC Core 2 ou Pages du rasoir n'ont pas accès au contexte de la demande, ils ne peuvent donc pas rediriger...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X