Html.BeginForm (), avec seulement une forme Id n'est pas de générer l'action correcte url

Je veux seulement ajouter de la formId dans le beginForm()

Si j'ai essayer d'utiliser
Html.BeginForm(null, null, FormMethod.Post, new {@id="Id"})

ensuite le code Html généré est
<form action="/newquestion/payment/b9f88f80-f31f-4144-9066-55384c9f1cfc" ... >

je ne sais pas comment l'action de l'url est générée j'ai donc essayé,
Html.BeginForm(new {@id="Id"})
mais alors l'url de l'action ressemble à ceci
<form action="/newquestion/payment/Id... >

Dans les deux cas, l'url de l'action n'est pas ce qu'il devrait être et il n'est pas de frapper le poteau d'action du contrôleur.

MVC utilise le routeur pour déterminer l'URL. Qu'est-ce que l'URL censé être?
Je n'ai pas envie de mettre un correctif contrôleur et l'action dans le BeginForm() parce que je veux appeler le POST d'action basé sur la OBTENIR d'action. Par exemple si je l'appelle de paiement (SE), alors il devrait appeler de paiement (POST) et si je l'appelle Bundle (SE), alors il devrait appeler Bundle (POST) d'action. Cela fonctionnait bien jusqu'à maintenant, parce que je n'avais Html.BeginForm() mais maintenant, je veux ajouter le formId et que c'est de casser le comportement.

OriginalL'auteur Amit | 2013-11-26