2

我的 MVC 4 Internet 应用程序中有以下模型

public class EventModel
{
    public int EventId { get; set;}
    public string EventTitle { get; set;}
    public string ImageUrl { get; set;}
    public string VideoUrl { get;set}
}

这是图像和视频的 Create.cshtml 代码

@using(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<div>
@Html.LabelFor(model =>model.ImageUrl)
</div>
<div>
@Html.EditorFor(model =>model.ImageUrl)
@Html.ValidationMessageFor(model =>model.ImageUrl)
</div>

<div>
@Html.LabelFor(model =>model.VideoUrl)
</div>
<div>
@Html.EditorFor(model =>model.VideoUrl)
@Html.ValidationMessageFor(model =>Video.ImageUrl)
</div>

}

这是我用于创建 post 方法的控制器代码

[HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(EventModel eventmodel)
        {
            if (ModelState.IsValid)
            {
                _db.EventModels.Add(eventmodel);
                _db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(eventmodel);
        }

如何使创建页面显示按钮从用户计算机上传图像。如何修改控制器操作以将路径存储在数据库中,然后如何在 index.cshtml 页面上检索图像。

4

1 回答 1

1

对于文件上传试试这个:

在控制器中:

[HttpPost]
public ActionResult Create(EventModel eventmodel, HttpPostedFileBase file)
{ 
   if (ModelState.IsValid)
   {
      var filename = Path.GetFileName(file.FileName);
      var path = Path.Combine(Server.MapPath("~/Uploads/Photo/"), filename);
      file.SaveAs(path);
      tyre.Url = filename;

      _db.EventModels.AddObject(eventmodel);
      _db.SaveChanges();
      return RedirectToAction("Index");
   }
   return View(eventmodel);
}

并查看:

<div>
   Image
   <input type="file" name="file" id="file" />
   @Html.HiddenFor( model => model.ImageUrl)
   @Html.ValidationMessageFor( model => model.Url )
</div>
于 2013-07-26T05:58:30.217 回答