ASP.NET MVC 4,C#:如何下载文件

Wea*_*nie 2 c# asp.net asp.net-mvc httppostedfilebase asp.net-mvc-4

我之前已将文件上传到我的数据库,现在我想从我的数据库下载该文件.

谁能告诉我怎么样?我是C#和ASP.NET MVC的新手.

控制器:

public ActionResult Details(string id = null)
{
        Assignment assignment = db.Assignments.Find(id);

        if (assignment == null)
        {
            return HttpNotFound();
        }

        return View(assignment);
}
Run Code Online (Sandbox Code Playgroud)

模型:

public string AssignmentID { get; set; }
public Nullable<System.DateTime> SubmissionDate { get; set; }
public string Status { get; set; }
[Range(0,100, ErrorMessage="Only Value between 0-100 is accepted.")]
public Nullable<decimal> Mark { get; set; }
public string Comments { get; set; }
public byte[] FileLocation { get; set; }
Run Code Online (Sandbox Code Playgroud)

视图:

<div class="display-label">
    <%: Html.DisplayNameFor(model => model.FileLocation) %>
</div>
<div class="display-field">
    <%: Html.DisplayFor(model => model.FileLocation) %>
</div>
Run Code Online (Sandbox Code Playgroud)

Fel*_*ani 5

由于您具有文件的a Streambyte[]路径,因此可以使用File()来自Controller基类的方法,并将此文件作为ActionResult样本响应:

public ActionResult Details(string id = null)
{
     Assignment assignment = db.Assignments.Find(id);

     if (assignment == null)
     {
         return HttpNotFound();
     }

     return File(assigment.FileLocation, "content/type", "fileName.extension");
}
Run Code Online (Sandbox Code Playgroud)

请记住要正确content-type并添加fileName正确的扩展名.