J'utilise le tutoriel simple this pour télécharger un fichier dans mon projet MVC5 C# VS2015, et sans nécessiter de paramètres supplémentaires dans l'action des contrôleurs, le fichier est téléchargé avec succès. Voici des contrôleurs d'actionMVC 5 Téléchargement de fichier (POST) avec un paramètre supplémentaire
[HttpPost]
public string UploadFile(HttpPostedFileBase file)
{
if (file.ContentLength <= 0)
throw new Exception("Error while uploading");
string fileName = Path.GetFileName(file.FileName);
string path = Path.Combine(Server.MapPath("~/Uploaded Files"), fileName);
file.SaveAs(path);
return "Successfuly uploaded";
}
et la forme de vue pour le téléchargement
@using (Html.BeginForm("UploadFile", "Documents", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.TextBox("file", "", new { type = "file" })
<input type="submit" value="Dodaj fajl" />
}
Dans ce point de vue, j'ai une autre variable appelée DocumentNumber
, que je dois passer à l'action UploadFile
. Je devine seulement que l'en-tête de mon action ressemblerait à ceci: public string UploadFile(HttpPostedFileBase file, int docNo)
si je voulais passer cette variable, mais je ne sais pas non plus comment définir cette valeur dans le formulaire de la vue. J'ai essayé d'ajouter: new { enctype = "multipart/form-data", docNo = DocumentNumber }
sans succès. Comment puis-je passer de DocumentNumber
(qui doit être caché, non visible) de mon point de vue à l'action du contrôleur avec la méthode post?