Je voulais savoir comment faire référence à un élément spécifique/clé avec une page Web basée sur le nom de l'entrée.Comment se référer à une touche spécifique IEnumerable <HttpPostedFileBase>
J'ai une forme comme ci-dessous et je voudrais télécharger trois images dans une base de données SQL-Express:
else if (property.PropertyName == "Image1")
{
<div class="form-group">
<label for="file1">Filename:</label>
<input type="file" name="fileUpload[0]" />
@if (Model.Image1 == null)
{
<div class="form-control-static">No Image</div>
}
else
{
<div> Image</div>
}
</div>
}
else if (property.PropertyName == "Image2")
{
<div class="form-group">
<label for="file2">Filename:</label>
<input type="file" name="fileUpload[1]" />
@if (Model.Image2 == null)
{
<div class="form-control-static">No Image</div>
}
else
{
<div> Image</div>
}
</div>
}
else if (property.PropertyName == "Image3")
{
<div class="form-group">
<label for="file3">Filename:</label>
<input type="file" name="fileUpload[2]" />
@if (Model.Image3 == null)
{
<div class="form-control-static">No Image</div>
}
else
{
<div> Image</div>
}
</div>
}
Mon contrôleur est le suivant:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Client client, IEnumerable<HttpPostedFileBase> fileUpload)
{
if (ModelState.IsValid)
{
if(fileUpload != null)
{
foreach (var file in fileUpload)
{
//if (file.ContentType == "jpg")
//{
if (file.FileName == "fileUpload[0]")
{
client.Image1 = new byte[file.ContentLength];
file.InputStream.Read(client.Image1, 0, file.ContentLength);
}
if (file.FileName == "fileUpload[1]")
{
client.Image2 = new byte[file.ContentLength];
file.InputStream.Read(client.Image2, 0, file.ContentLength);
}
if (file.FileName == "fileUpload[2]")
{
client.Image3 = new byte[file.ContentLength];
file.InputStream.Read(client.Image3, 0, file.ContentLength);
}
//}
}
}
Repo.SaveProduct(client);//this is an interface to save the changes to the database.
return RedirectToAction("Index");
Comment mapper retour à une variable particulière dans le Enumerable, j'utilise ce fichier. FileName == "fileUpload [2]". Je suis à peu près certain que c'est ce qui ne va pas. J'essaie de me référer à la balise html ''. Est-ce qu'il y a un moyen de faire ça?
'file.FileName' renvoie le nom du fichier que l'utilisateur téléchargé (pas le nom de la propriété). Ce n'est pas clair ce que vous voulez faire ici. –