2009-01-09 9 views
1

Je sais que c'est probablement très évident, mais je n'arrive pas à comprendre pourquoi je ne peux pas passer un argument de chaîne à un contrôleur comme un int.Passer une chaîne comme argument à un contrôleur

par exemple.

//controller/action/2 
public ActionResult Action(int someInt) 
{ 
//somenumber != null 
} 

mais quand je passe une chaîne comme ça ...

//controller/Action/x9294kskw 
public ActionResult Action(string someString) 
{ 
//someString = null 
} 

Qu'est-ce que je manque? Je suppose que cela a à voir avec le routage mais ... je n'en ai aucune idée. Merci!

modifier:

Peut-être que je lis sur le blog de scott gu un peu trop négligemment, mais est-ce quelque part documenté? J'aurais dû vérifier les routes!

Existe-t-il une raison spécifique pour laquelle les chaînes sont traitées différemment des entrées?

Répondre

2

Il doit avoir le nom 'id', comme configuré dans la configuration par défaut de l'itinéraire.

+0

Pour clarifier: il n'a pas * avoir * pour avoir le nom "id" - il doit simplement avoir le * même * nom tel que défini dans l'itinéraire. –

Questions connexes