的模式在实体这样我把HttpPostedFileBase名称为镜像文件我们虚拟的,因为我在实体即时得到实体使用映射输入标签返回NULL INT创建的ActionResult
public class Slider : IEntity
{
public virtual int Id { get; set; }
public virtual HttpPostedFileBase ImageFile { get; set; }
}
这里。镜像文件=空,因此下面的操作代码
[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);
}
在我加入镜像文件名输入标签因此通常我不应该得到空的观点
?
请帮助
@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>
}
代码我得到的帮助@Pankaj Makwana通过改变Jquery的几行代码来解决这个问题。您可以在下面的链接中找到解决方案。 https://stackoverflow.com/questions/46400029/input-type-file-not-getting-serialized-in-jquery-ajax – Killua