web-dev-qa-db-fra.com

Comment rediriger vers une page de base de rasoir asp.net (pas de routes)

Ici, j'ai une page de rasoir cs:

public IActionResult OnPost(){
  if (!ModelState.IsValid) {
    return Page(); 
  }

  return RedirectToPage('Pages/index.cshtml'); 

}

Et une page cshtml:

@page
@using RazorPages

@model IndexModel
<form method="POST">
  <input type="submit" id="Submit">
</form>

Je veux rediriger vers la même page lors de la soumission du formulaire, mais je continue à recevoir une erreur 400. Est-il possible de faire la redirection sans utiliser les itinéraires et d'aller simplement au fichier cshtml dans l'URL?

4
user6781613

Essayez ceci en vue;

@using (Html.BeginForm())
{
   <input type="submit" id="Submit">
}
3
MD Azher ahmed

consultez la page MS https://docs.Microsoft.com/en-us/aspnet/core/mvc/razor-pages/?tabs=visual-studio

Les associations de chemins d’URL aux pages sont déterminées par l’emplacement de la page dans le système de fichiers. Le tableau suivant présente un chemin de page Razor et l’URL correspondante: Nom de fichier et URL correspondant au chemin.

/Pages/Index.cshtml/ou/Index

/Pages/Contact.cshtml/Contact

/Pages/Store/Contact.cshtml/Store/Contact

/Pages/Store/Index.cshtml/Store ou/Store/Index

La génération d'URL pour les pages prend en charge les noms relatifs. Le tableau suivant indique la page d'index sélectionnée avec différents paramètres RedirectToPage à partir de Pages/Customers/Create.cshtml:

Page de redirection vers (x)

RedirectToPage ("/ Index") Pages/Index

RedirectToPage ("./ Index"); Pages/Clients/Index

RedirectToPage ("../ Index") Pages/Index

RedirectToPage ("Index") Pages/Clients/Index

3
S. Aziz Kazdal

@ Roman Pokrovskij Cela pourrait être beaucoup trop vieux, mais si vous voulez rediriger vos activités vers une zone, vous devriez:

return RedirectToPage ( "/Page", new { Area = "AreaName" } );
2
Breno Miyazaki