J'ai une page MVC pour créer une entité. À la fin, je veux rediriger vers l'entité parente. Je le fais comme ceci:Rendre ASP.NET MVC traiter un paramètre de route nommé `` id '' comme tout autre paramètre
return RedirectToAction("Edit", new { id = vm.Parent });
Lorsque j'utilise un autre nom de paramètre, il est interprété comme une URL param:
return RedirectToAction("Edit", new { foo = vm.Parent });
rend comme /Entities/Edit?foo=234
Mais ASP MVC prend un itinéraire param nommé id
comme un cas spécial et l'URL ressemble à: /Entities/Edit/234
. Cela ne fonctionne pas pour moi parce que le routage n'est pas configuré pour fonctionner avec cela. Je cherche à obtenir une URL comme /Entities/Edit?id=234
.
Comment le forcer à fonctionner de cette façon? Itinéraire configuration:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Dans votre configuration de route, recherchez une route mappée qui ressemble à ceci: "{{controller}/{ action}/{id} "' et ajoutez les détails à votre question. – spender
Utilisez-vous les routes par défaut? –
@spender ajouté la configuration de l'itinéraire – Johanes