Post de formulaire avec enctype = “multipart/form-data”, provoquant des paramètres de ne pas obtenir passé
Dans un ASP.NET MVC 3 (Rasoir) projet je m 'essayer de télécharger une photo:
la partie pertinente de l'avis:
@using (@Html.BeginForm( new {enctype = "multipart/form-data" }))
{
<text>Select a file </text>
<input type="file" name="file" />
<input type="submit" value="Upload" />
}
précisant explicitement le enctype paramètre est "responsable" pour enlever les paramètre de la partie. Par exemple, si l'URL (l'ouverture de la vue) est la suivante:
mydomain/Controller/Action/id?parameter1=somevalue1
la BeginForm-déclaration dans le formulaire ci-dessus donnerait (publication) suivantes:
mydomain/Controller/Action/id
donc de dépouiller de la partie ?paramètre1=somevalue1 qui est nécessaire!
Comment dois-je prendre soin de cela?
Vous devez vous connecter pour publier un commentaire.
Puisque vous êtes déjà à la publication des données vers le serveur je l'avais mis le paramètre obligatoire d'informations dans le formulaire, les champs cachés.
De poser la question "puis-je envoyer cette collecte d'informations à cette adresse sans avoir à remplir d'autres collections?"
Avec la méthode querystring la réponse est non. Je l'avais mis comme un champ caché.
Creuser un peu plus profond, j'ai découvert que je peux faire:
Remarquez comment le Html.BeginForm diffère de la première.
Vous pouvez essayer en appelant le subit à partir de java script par appeding les paramètres de l'action exemple
document.forms[0].action="photoprocess.asp?="+
et ensuite soumettre