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?
Essayez ceci en vue;
@using (Html.BeginForm())
{
<input type="submit" id="Submit">
}
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
@ 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" } );