J'ai un contrôleur de visiteurs. A l'intérieur j'ai des actions Index et SignIn. Voici les actions:ASP.NET MVC 2 Format Url Numéro
public ActionResult Index(int month,
int day,
int year){
var visitors = visitorRepoistory.FindVisitorsByDate(month, day, year).ToList();
return View("Index", visitors);
}
[HttpPost]
public ActionResult SignIn(Visitor visitor) {
if (ModelState.IsValid) {
visitorRepoistory.Add(visitor);
visitorRepoistory.Save();
return RedirectToAction("/", new { month = DateTime.Now.Month, day = DateTime.Now.Day, year = DateTime.Now.Year });
} else {
return View(new VisitorFormViewModel(visitor));
}
}
Plus précisément, je suis en train de comprendre le RedirectToAction() dans SignIn(). Je voudrais l'avoir rediriger vers mon action d'index et avoir l'URL ressembler à: .../08/10/2010, mais à la place j'obtiens:? Month = 8 & day = 10 & year = 2010. Comment puis-je réparer cela?
Merci.
Mise à jour Voici mon itinéraire (Lorsque l'URL hardcoded cela fonctionne):
routes.MapRoute(
"VisitorsByDate", // Route name
"{controller}/{month}/{day}/{year}", // URL with parameters
new { controller = "visitors", action = "index"}, // Parameter defaults
new { month = @"\d{2}", day = @"\d{2}", year = @"\d{4}" }
);
Mon parcours ressemble à ceci et quand hardcoding l'url, il fonctionne comme il se doit: routes.MapRoute ( "VisitorsByDate", // Nom de la route "{controller}/{month}/{day}/{year}", // URL avec les paramètres new {controller = "visitors ", action =" index "}, // Paramètre par défaut nouveau {month = @" \ d {2} ", jour = @" \ d {2} ", année = @" \ d {24} "} ) – Mike
Oups. J'ai mis à jour le message original avec mon itinéraire. – Mike
Ah ... il s'avère que mon mois (DateTime.Now.Day) est seulement un seul entier et c'est pourquoi la route n'a pas été ramassée. Merci! – Mike