web-dev-qa-db-fra.com

Comment ajouter des attributs de données à Html.BeginForm

J'utilise ce qui suit pour créer un formulaire pour télécharger des images sur un site mobile.

@using (Html.BeginForm("Form/", "Quote", FormMethod.Post, new { enctype = "multipart/form-data" }))

Cependant, comme il utilise jQuery mobile, j'ai activé Ajax pour que la transition entre les pages soit agréable et fluide. Cela a causé le problème que mon formulaire ne téléchargera pas les images car vous ne pouvez pas faire de téléchargement de fichiers avec ajax. Je dois ajouter l'attribut data-ajax="false" à ce formulaire pour lui permettre de télécharger mes fichiers.

Est-ce que quelqu'un sait comment je fais cela car j'ai essayé plusieurs variantes des éléments suivants, mais je n'ai pas pu le faire fonctionner:

@using (Html.BeginForm("Form/", "Quote", FormMethod.Post, new { enctype = "multipart/form-data", "data-ajax" = "false" }))
33
Pete

L'astuce consiste à utiliser le trait de soulignement au lieu du trait d'union:

new { enctype = "multipart/form-data", data_ajax = "false" }

Le tiret n'est pas autorisé dans le cadre d'un identifiant c #. Le framework MVC traduit automatiquement le soulignement.

62
Jan

Vous pouvez utiliser une autre surcharge:

@using (Html.BeginForm("Form", "Quote", FormMethod.Post, new Dictionary<string, object> { { "enctype", "multipart/form-data" }, { "data-ajax", "false"} })) 
16
YD1m