首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载上传的文件MVC 3

下载上传的文件MVC 3
EN

Stack Overflow用户
提问于 2011-08-22 20:31:36
回答 1查看 2.4K关注 0票数 1

我在一个MVC3项目中有一个上传功能,它将文件存储在数据库中。我正在尝试编写代码,将列出数据库中的所有文件与下载每个文件的链接,但我没有太大的成功。以下是控制器代码:

代码语言:javascript
复制
        public ActionResult Download(int id)
    {
        var db = GetDataContext();
        var file = db.UserFiles.First(f => f.ID == id);
        return File(file.Data.ToArray(), "application/octet-stream", file.Name);
    }

    public ActionResult Index()
    {
        var db = GetDataContext();
        var files = db.UserFiles.Select(f => new FileViewModel { ID = f.ID, Name = f.Name });
        return View(files);
    }

我已经从ActionResult索引创建了一个视图,视图中的代码是:

代码语言:javascript
复制
@Html.ActionLink("Lesson", "Download", "Upload", new { id = 1 })

我还创建了一个名为FileViewModel的类文件,用于防止在列出文件时从数据库检索数据:

代码语言:javascript
复制
    public class FileViewModel
{
    public int ID { get; set; }
    public string Name { get; set; }
}

在我将列出文件的下载视图中,我有:

代码语言:javascript
复制
@model IEnumerable<DFPProductions_Default.Models.FileViewModel>

当我单击该链接时,我得到的错误是:对于'DFPProductions_Default.Controllers.UploadController'.中的方法'System.Web.Mvc.ActionResult Download(Int32)‘,参数字典包含不可为空类型为'System.Int32’的参数'id‘的空条目

请帮我找出我做错了什么。谢谢,艾米

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-22 20:47:28

问题似乎是您没有向控制器发送任何Id。尝试调用您的操作链接:@Html.ActionLink("Lesson", "Download", "Upload", new { id = 1 }, null)

此外,为了将来的参考,您应该将控制器保持在最低限度,不要与数据库交互。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7147506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档