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 :
Voici un exemple de vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
et un bout de code de mon controlleur, rien de bien compliqué :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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> }
J'aimerais donc envoyer un fichier par ajax, en utilisant jQuery.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [AcceptVerbs(HttpVerbs.Post)] [ValidateInput(false)] public void ManageCompany(TestModel Test) { }
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.
Partager