我有以下型号:
public class Photo { public int PhotoId { get; set; } public byte[] ImageData { get; set; } public DateTime DateUploaded { get; set; } public string Description { get; set; } public bool IsActive { get; set; } }
我希望用户能够输入照片的详细信息,然后将模型发布到控制器.我的控制器动作如下:
[HttpPost] public ActionResult Create(WilhanWebsite.DomainClasses.Photo photo) { if (ModelState.IsValid) { photo.DateUploaded = DateTime.Now; _context.Photos.Add(photo); _context.SaveChanges(); return RedirectToAction("Index"); } //we only get here if there was a problem return View(photo); }
我的观点如下:
@using (Html.BeginForm()) { @Html.AntiForgeryToken()}Photo
@Html.ValidationSummary(true)@Html.LabelFor(model => model.ImageData, new { @class = "control-label col-md-2" })@Html.LabelFor(model => model.DateUploaded, new { @class = "control-label col-md-2" })@Html.EditorFor(model => model.DateUploaded) @Html.ValidationMessageFor(model => model.DateUploaded)@Html.LabelFor(model => model.Description, new { @class = "control-label col-md-2" })@Html.EditorFor(model => model.Description) @Html.ValidationMessageFor(model => model.Description)@Html.LabelFor(model => model.IsActive, new { @class = "control-label col-md-2" })@Html.EditorFor(model => model.IsActive) @Html.ValidationMessageFor(model => model.IsActive)
视图显示正常,允许用户从其本地磁盘中选择文件并输入其他模型详细信息.我的问题是虽然模型发布到控制器ok,但是描述,日期和IsActive标志填充正确 - 图像数据为空.
任何人都可以让我知道我需要更改什么,以便照片的字节数组包含在发布到控制器的模型中?