mvc télécharger le fichier avec le modèle - deuxième paramètre le fichier posté est null
J'ai un modèle simple avec 1 chaîne de propriété qui j'ai rendu sur un simple point de vue.
l'affichage se présente comme suit:
@using (Html.BeginForm("UploadFile", "Home", FormMethod.Post, new { encType="multipart/form-data" }))
{
@Html.TextBoxFor(m => m.FirstName)
<br /><br />
<input type="file" name="fileUpload" /><br /><br />
<input type="submit" value="submit me" name="submitme" id="submitme" />
}
Contrôleur est ceci:
[HttpPost]
public ActionResult UploadFile(UploadFileModel model, HttpPostedFileBase file)
{
//DO Stuff
return View(model);
}
Maintenant, quand je soumettre, le modèle est peuplé, mais le deuxième paramètre étant HttpPostedFileBase est null. Cependant, quand faire la Demande.Fichiers - il ne semble montrer qu'il y a un fichier dans la Demande d'être publiés.
Comment puis-je obtenir effectivement le deuxième paramètre à lier?
source d'informationauteur Ahmed ilyas
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas ajouter les fichiers à votre modèle comme ceci:
Puis changer votre point de vue à ceci:
Ensuite vos fichiers seront affichés en arrière comme suit:
Changer votre nom
file
àfileUpload
etenctype
c'est le travailPour traiter avec un seul fichier d'entrée, vous pouvez définir un
HttpPostedFileBase
bien au sein de la ViewModel:Puis la mise en œuvre de la façon suivante:
Vue:
@modèle SomeModel
Contrôleur:
Dans le cas où vous avez besoin de traiter plusieurs fichiers, vous pouvez soit:
public HttpPostedFileBase SomeFile
bien à quelque chose commepublic List<HttpPostedFileBase> SomeFiles
et puis s'étendent sur plusieurs@Html.TextBoxFor(m => m.SomeFile, new { type = "file" })
contrôles de les avoir tous dans cette liste.Pour plus d'info, lire ici.
Sinon, (si accepté) enlever le [Obligatoire] validation d'annotation pour votre fichier à partir de votre modèle et de vérifier le fichier dans votre Contrôleur de l'action, et ajouter une erreur si non trouvé: