Envoi d'un fichier en ajax via formulaire bindé
Bonjour.
Voilà, aujourd'hui je bloque sur un cas très simple O_o.
J'ai une class d'objet utilisée pour ma base de données. Voici un exemple cré rapido :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public class TestModel
{
public TestModel()
{
}
[Key]
[Required]
public Int32 Id { get; set; }
[Required]
public String Name { get; set; }
public Byte[] File { get; set; }
} |
Voici un exemple de vue :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| @model namespace.Models.TestModal
@{
ViewBag.Title = "XXXXXXX";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { autocomplete = "off", enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.Id, new { @id = "" })
@Html.LabelFor(model => model.Name)
@Html.TextBoxFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
@Html.LabelFor(model => model.Logo)
@Html.TextBoxFor(model => model.Logo, new { type = "file", accept = "image/png" })
@Html.ValidationMessageFor(model => model.Logo)
<button type="button">Sauvegarder</button>
} |
et un bout de code de mon controlleur, rien de bien compliqué :
Code:
1 2 3 4 5 6
| [AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public void ManageCompany(TestModel Test)
{
} |
J'aimerais donc envoyer un fichier par ajax, en utilisant jQuery.
Seulement je suis bloqué. Lorsque j'essai de sérialiser mon formulaire au travers de la fonction serialize(), mon fichier n’apparaît pas.
Pourriez-vous m'indiquer une solution svp ?
J'ai bien entendu cherché sur google, mais je n'ai pas trouvé de solution pour mon cas. Je ne peux pas changer le type de la propriété "File", ni même surcharger ma classe.
Merci bien :).