Come impostare il file di input in RAZOR 3 MVC 5
-
21-12-2019 - |
Domanda
Ho in MVC 5 e Razor 5 Code Page come questo:
<input type="file" name="file" />
<img src=@Url.Content(Model.ImagePath)" alt="Image"/>
.
Quando creo nuovo elemento e aggiungo l'immagine tramite file di ingresso file funziona bene.Ma ho questo stesso codice in edit.cshtml e voglio impostare il file di tipo di ingresso dal modello e l'ID non funziona.Non riesco a impostare questo file di input.
Grazie
Soluzione
È necessario creare proprietà nel tuo modello:
public class ViewModel
{
public string ImagePath{ get; set; }
.....
}
.
in Modifica View:
@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new
{ enctype = "multipart/form-data" }))
{
<label for="ImageUpload">Filename:</label>
<input type="file" name="ImageUpload" id="ImageUpload" />
}
.
nel controller:
[HttpPost]
public ActionResult Action(ViewModel model)
{
if (ModelState.IsValid)
{
var file = Request.Files["ImageUpload"];
if (file != null && file.ContentLength > 0){
var uploadDir = "~/uploads"
var imagePath = Path.Combine(Server.MapPath(uploadDir), file.FileName);
var imageUrl = Path.Combine(uploadDir, file.FileName);
file.SaveAs(imagePath);
model.ImagePath= imageUrl;
}
}
}
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow