2009-06-16 4 views
0

Est-ce que quelqu'un d'autre a eu ce problème? Je dois faire quelque chose de mal.ASP.Net MVC: Alors attendez ... Le paramètre d'itinéraire par défaut doit être nommé id?

Je suis mise en place d'un itinéraire pour des erreurs comme celle-ci:

routes.MapRoute 
(
"SharedError", 
"Shared/Error/{error}", 
new { error = "" } 
); 

Et appeler comme:

return parentController.RedirectToRoute("SharedError", new RouteValueDictionary(new { error = errorMessage.ToString() })); 

Et sur le contrôleur:

public ActionResult Error(String error) 

simple droit? Eh bien, lorsque cela est effectivement exécuté, l'erreur est nulle malgré l'URL ressemblant à:

/Shared/Erreur/ThisIsTheError

Mais le paramètre d'erreur dans la méthode d'erreur est nulle. (Et oui, j'ai essayé d'autres mots)

Maintenant, si je remplace tout cela avec le mot «id» tout fonctionne.

Global.asax.cs

routes.MapRoute 
(
"SharedError", 
"Shared/Error/{id}", 
new { id = "" } 
); 

Redirect:

return parentController.RedirectToRoute("SharedError", new RouteValueDictionary(new { id = errorMessage.ToString() })); 

Contrôleur Partagé:

public ActionResult Error(String id) 

est un must have id mot pour toutes les routes si vous avez une route par défaut prendre une valeur?

Répondre

5

Vous devez toujours spécifier le contrôleur et les paramètres d'action:

routes.MapRoute 
(
"SharedError", 
"Shared/Error/{error}", 
new { controller = "Shared", action="Error", error = "" } 
); 

Je suppose que la raison pour laquelle l'aide id fonctionne pour vous parce que vous avez la route par défaut encore enregistré, qui a id comme paramètres et valeurs par défaut pour le contrôleur et l'action.

Remarque, si vous avez encore la route par défaut, assurez-vous d'ajouter votre itinéraire avant, sinon il correspondra à l'autre d'abord.

+0

Droit, mais il devrait être nouveau {controller = "Partagé", action = "Erreur", error = ""} – CoderDennis

+0

Essayé que, est toujours jacked. –

+0

Corrigé (bien que je ne pense pas que l'OP ait mentionné le nom de son contrôleur). – DSO

Questions connexes