En ASP.NET MVC J'utilise l'aide HTMLComment passer l'ID avec Html.BeginForm()?
Html.BeginForm("ActionName", "Controller", FormMethod.Post);
Mais je dois poster à:/contrôleur/action/23434
Comment passe-je dans l'ID?
En ASP.NET MVC J'utilise l'aide HTMLComment passer l'ID avec Html.BeginForm()?
Html.BeginForm("ActionName", "Controller", FormMethod.Post);
Mais je dois poster à:/contrôleur/action/23434
Comment passe-je dans l'ID?
Matt doivent fonctionner correctement. Si vous passez encore FormMethod.Post
, cependant, vous devez le faire comme ceci:
Html.BeginForm("action","controller", new { Id = 12345 }, FormMethod.Post);
Inverser les troisième et quatrième paramètres entraînera la Id
être traité comme un attribut au lieu d'une valeur d'itinéraire.
Html.BeginForm("action", "controller", new {Id = 12345})
ne fonctionne pas, il ajoute un attribut à la balise de formulaire. – mrblah
vérifiez le nom du paramètre routeValues - assurez-vous que vous utilisez celui-là pas htmlAttributes. –
Html.BeginForm("action", "controller", new { id = ViewBag.FileID },
FormMethod.Post, new { id = "feedbackform" })
Quant au querystring, ?type=golden
, je ne sais pas comment faire. Bien sûr, un querysting est un get, et sape tout le but de FormMethod.Post
. Je veux dire, vous pouvez utiliser FormMethod.Get
, si vous voulez des données querystring, et cela pourrait être ce que vous cherchez.
En outre, vous pouvez éviter html.beginform
et faire la chaîne de requête, get + post, manuellement avec une balise de formulaire.
Troisièmement, si vous utilisez le formulaire, vous pouvez faire un champ caché:
[input type=hidden name="type" value="golden"]
Ensuite, lorsque le bouton est appuyé sur la soumettre valeur est passée correctement comme une variable de forme.
Je perds les valeurs de route existantes lorsque j'utilise cette méthode. Dites que mon URL était '/ controller/action? Type = golden', la forme cible (en utilisant votre chemin) devient maintenant'/controller/action/12345' alors que je veux que ce soit '/ controller/action/12345? Type = doré '. Savez-vous comment préserver les valeurs de route existantes et ajouter les miennes? –
@Aki Essayez d'ajouter 'type' comme champ caché dans le formulaire et il devrait être envoyé. –
Je pourrais, mais vous voyez que ce n'est pas mon problème. Il n'est pas nécessaire que je n'ai que 'type' dans ma chaîne de requête, je pourrais avoir N nombre de params, qui pourraient être différents dans différentes actions. Ce serait une vraie peine d'aller dans toutes ces actions et d'ajouter les paramètres de requête comme champs cachés. –