Le nom est assez déroutant probablement. J'ai une exigence où une URL doit être nom convivial pour représenter les dates (schedule/today
, schedule/tomorrow
etc). Je ne pas veulent encombrer mes correspondances d'itinéraire avec DateTime.Now
, DateTime.Now.AddDays(1)
etc pour les paramètres différents donc j'ai décidé de créer des itinéraires qui correspondent à une action du même nom:Rendu d'action Vue du premier Action (lorsqu'une Action appelle une autre Action)
routes.MapRoute(RouteNames.ScheduleToday, "schedule/today", new { controller = "Schedule", action = "Today" });
routes.MapRoute(RouteNames.ScheduleTomorrow, "schedule/tomorrow", new { controller = "Schedule", action = "Tomorrow" });
L'idée pour les actions est que J'aimerais pouvoir appeler l'action Today()
mais appeler l'action List(DateTime date)
avec, par exemple, DateTime.Now
comme paramètre date
.
Cela fonctionne très bien comme ceci:
public ActionResult Today()
{
return this.List(DateTime.Now);
}
public ViewResult List(DateTime date)
{
this.ViewData["Date"] = date;
return this.View("List");
}
Je voudrais pouvoir appeler this.View()
au lieu de this.View("List")
. Est-ce possible autre que ce que j'ai posté ci-dessus? Il semble que la vue affichée corresponde au nom de l'action première appelée car la seule façon de faire fonctionner cette option est de rendre explicitement la vue List
.
Ouais merci pour l'idée, mais je pense que c'est vraiment trop compliquer ce qui doit être fait. Appeler 'this.View (" List ")' est suffisant. – TheCloudlessSky