dans l'entité comme cela, je mets le HttpPostedFileBase avec le nom ImageFile nous virtuel parce que je suis en utilisant la cartographieTag Entrée renvoie Null au modèle int Créer ActionResult
public class Slider : IEntity
{
public virtual int Id { get; set; }
public virtual HttpPostedFileBase ImageFile { get; set; }
}
Ici, dans l'entité im obtenir entité. ImageFile = null si en dessous du Code des actions
[HttpPost]
public ActionResult AddOrEdit(Slider entity)
{
try
{
string fileName = Path.GetFileNameWithoutExtension(entity.ImageFile.FileName);
string extension = Path.GetExtension(entity.ImageFile.FileName);
fileName = fileName + DateTime.Now.ToString("yymmssfff") + extension;
entity.Image = fileName;
fileName = Path.Combine(Server.MapPath("~/Image/"), fileName);
entity.ImageFile.SaveAs(fileName);
if (ModelState.IsValid)
{
if (entity.Id == 0)
{
_sliderService.Insert(entity);
}
dans la vue i ajouté la balise d'entrée avec le nom ImageFile donc normalement je ne devrais pas obtenir nulle ??
s'il vous plaît aider
@model Slider
@{
Layout = null;
}
@using (Html.BeginForm("AddOrEdit", "Slider", FormMethod.Post, new { id =
"form", enctype = "multipart/form-data" , onsubmit = "return
SubmitForm(this)" }))
{
@Html.HiddenFor(m => m.Id)
<div class="form-group" style="height:270px;">
@Html.LabelFor(m => m.ImageFile, new { @class = "blue-text", @style =
"font-size:16px", @id = "" })
<input name="ImageFile" type="file" />
</div>
<div class="form-group">
<input type="submit" value="Submit" class="btn btn-primary" />
<input type="reset" value="Reset" class="btn" />
</div>
}
Je suis l'aide de @Pankaj Makwana pour résoudre le problème en changeant quelques lignes dans le code Jquery. vous pouvez trouver la solution dans le lien ci-dessous. https://stackoverflow.com/questions/46400029/input-type-file-not-getting-serialized-in-jquery-ajax – Killua