asp.net mvc de routage: comment faire pour utiliser la valeur par défaut de l'action mais non paramètre par défaut?

Je suis la réécriture de la question, que les réponses me montrer que je n'ai pas défini assez bon. Je vais laisser la question d'origine de référence ci-dessous.

Lorsque vous configurez votre routage, vous pouvez spécifier les valeurs par défaut pour les différentes url/route de pièces. Prenons l'exemple que VS assistant génère:

        routes.MapRoute(
            "Default", //Route name
            "{controller}/{action}/{id}", //URL with parameters
            new { controller = "DefaultPage", action = "Index", id = UrlParameter.Optional } //Parameter defaults

Dans cet exemple, si le contrôleur n'est pas spécifié, DefaultPageController sera utilisé et si l'action n'est pas spécifié "Index" action sera utilisé.
Les url ont généralement l'apparence: http://mysite/MyController/MyAction.

Si il n'y a pas d'action dans l'Url comme ceci: http://mysite/MyController puis l'action index sera utilisé.

Supposons maintenant j'ai deux actions dans mon controller Index et AnotherAction. Les url qui leur correspondent sont http://mysite/MyController et http://mysite/MyController/AnotherAction respectivement. Mon "Index" action accepte un paramètre, id. Donc, Si j'ai besoin de passer un paramètre à mon action Index, je peux le faire: http://mysite/MyController/Index/123. Notez que, contrairement à l'URL http://mysite/MyController, je dois spécifier l'Index de l'action de manière explicite. Ce que je veux faire est d'être en mesure de passer http://mysite/MyController/123 au lieu de http://mysite/MyController/Index/123. Je n'ai pas besoin de "Index" dans cette URL, je veux le mvc moteur de reconnaître, que, lorsque je demande http://mysite/MyController/123, 123 n'est pas une action (parce que je n'ai pas défini d'une action avec ce nom), mais un paramètre par défaut de mon action "Index". Comment puis-je configurer le routage pour y parvenir?

Ci-dessous est le texte original de la question.


J'ai un contrôleur avec deux méthodes définis comme cette

    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(SomeFormData data)
    {
        return View();

    }

Cela me permet de traiter les Url de http://website/Page à la fois lorsque l'utilisateur accède à cette url (GET) et quand ils ont par la suite publier le formulaire (POST).

Maintenant, quand j'processus de la publier, dans certains cas, je veux rediriger le navigateur à cette adresse:

http://website/Page/123

Où 123 est certain entier, et j'ai besoin d'une méthode pour traiter cette url dans mon contrôleur.

Comment puis-je configurer le routage, de sorte que cela fonctionne? Actuellement, j'ai "par défaut" de routage généré par l'assistant comme ceci:

        routes.MapRoute(
            "Default", //Route name
            "{controller}/{action}/{id}", //URL with parameters
            new { controller = "DefaultPage", action = "Index", id = UrlParameter.Optional } //Parameter defaults

J'ai essayé d'ajouter un autre contrôleur de méthode comme ceci:

public ActionResult Index(int id)
{
    return View();
}

Mais cela ne fonctionne pas comme ambiguë action exception est levée:

La demande actuelle de l'action "Index"
sur le contrôleur de type 'PageController'
est ambigu entre la suivante
les méthodes d'action:
Système.Web.Mvc.ActionResult Index() sur
type PageController
Système.Web.Mvc.ActionResult
Index(Int32), sur le type de PageController

Je dois ajouter que j'ai aussi d'autres actions dans ce contrôleur. Cette aurait fonctionné si je n'ai pas.