首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mvc-4在视图中生成列表

mvc-4在视图中生成列表
EN

Stack Overflow用户
提问于 2013-05-31 20:38:38
回答 2查看 3.1K关注 0票数 0

我在正确生成我的视图时遇到了一些问题。

我收到错误:模型不包含'GetEnumerator‘的公共定义

我试着将我的泛型列表变成一个IEnumerable列表,但是在我无法摆脱的代码中又弹出了几个错误,我不确定我是否必须以某种方式将它添加到我的UploadedFile类中?

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Mvc_fileUploader.Models
{
    public class UploadedFile
    {
        public string Name { get; set; }
        public string Path { get; set; }

        public long Size { get; set; }

    }
}

控制器:

代码语言:javascript
复制
[HttpGet]
        public ActionResult UploadedFiles()
        {
            var uploadedFiles = new List<UploadedFile>();

            var files = Directory.GetFiles(Server.MapPath("~/fileUploads/"));

            foreach (var file in files)
            {
                var fileInfo = new FileInfo(file);

                var uploadedFile = new UploadedFile();

                uploadedFile.Name = Path.GetFileName(file);
                uploadedFile.Size = fileInfo.Length;
                uploadedFile.Path = ("~/fileUploads/") + Path.GetFileName(file);

                uploadedFiles.Add(uploadedFile);
            }

            return View();

查看:

代码语言:javascript
复制
@model Mvc_fileUploader.Models.UploadedFile

@{
    ViewBag.Title = "UploadedFiles";
}

<h2>UploadedFiles</h2>

<table style="background-color:lightpink; border:solid 2px black;">
    <tr>
        <td>Name</td>
        <td>Size</td>
        <td>Preview</td>
    </tr>

    @foreach (var file in Model)
    {
        <tr>
            <td>@file.Name</td>
        </tr>       
    }

</table>

github上的源码:https://github.com/xoxotw/mvc_fileUploader

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-31 20:40:27

需要将视图的模型设置为

代码语言:javascript
复制
IEnumerable<Mvc_fileUploader.Models.UploadedFile>

编辑

你不能把模型还回去。在您的控制器操作中;将您创建的列表添加到View()调用中,例如:

代码语言:javascript
复制
[HttpGet]
        public ActionResult UploadedFiles()
        {
            var uploadedFiles = new List<UploadedFile>();

            var files = Directory.GetFiles(Server.MapPath("~/fileUploads/"));

            // do stuff

            return View(uploadedFiles);
票数 3
EN

Stack Overflow用户

发布于 2013-06-02 19:10:41

代码语言:javascript
复制
@model Mvc_fileUploader.Models.UploadedFile

当只有一个模型传递给视图时,将使用它。如果你想传递模型列表,那么你必须像下面这样写。

代码语言:javascript
复制
IEnumerable<Mvc_fileUploader.Models.UploadedFile>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16857503

复制
相关文章

相似问题

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