de routage fonctionne en convertissant une requête entrante à valeurs de route ou en utilisant des valeurs de chaque voie pour une URL. Les valeurs d'itinéraire sont soit définies en tant que paramètres dans l'URL elle-même, soit en tant que valeurs par défaut, soit les deux (dans lesquelles les valeurs par défaut rendent les paramètres d'URL facultatifs).
Vous n'avez défini aucune valeur de route sur votre itinéraire. Comme vous n'avez pas de paramètres de routage dans l'URL, vous devez définir des valeurs par défaut (le contrôleur et l'action sont requis par MVC).
routes.MapRoute(
name: "Gallery",
url: "Gallery/Index",
defaults: new { controller = "Gallery", action = "Index" }
);
Cela dit, votre itinéraire Default
couvre déjà cette URL. Vous devez seulement ajouter des routes personnalisées si vous souhaitez un comportement que l'itinéraire Default
ne couvre pas. En outre, si vous modifiez les noms des vues afin qu'elles ne correspondent pas au nom de la méthode d'action, vous devez spécifier explicitement le nom de la méthode d'action.
public ActionResult Index()
{
return View("~/Views/Gallery/GalleryView.cshtml");
}
Par défaut, MVC utilise des conventions. Il est beaucoup plus simple de nommer simplement la vue Index.cshtml
au lieu de GalleryView.cshtml
afin que vous puissiez simplement retourner View
à partir de la méthode d'action.
public ActionResult Index()
{
return View();
}
Renommer HomeView.cshtml à Index.cshtml – Jaybird
Le code doit être dans la question - non pas un lien vers une image de celui-ci. –
1) Il est préférable de donner le même nom à la méthode d'action et à la vue correspondante. Donc vous devez simplement faire 'return View()'. 2) Il est également utile d'avoir une action 'Index' par défaut dans chaque contrôleur et vue. 3) Il n'est pas nécessaire d'ajouter 'View' aux fichiers' cshtml'. 4) En savoir plus sur les conventions MVC. – adiga