Web applications 包含MVC4 web应用程序中编辑和创建视图目录中文件列表的下拉列表

Web applications 包含MVC4 web应用程序中编辑和创建视图目录中文件列表的下拉列表,web-applications,asp.net-mvc-4,views,Web Applications,Asp.net Mvc 4,Views,我想在MVC4 web应用程序中显示包含编辑和创建视图目录中文件列表的下拉框。我在控制器的编辑部分中使用过: DirectoryInfo directory = new DirectoryInfo(Server.MapPath("~/DownloadFiles")); var filesListing = directory.GetFiles().ToList<FileInfo>(); ViewBag.zipListing = filesListing; 它工作正常,(Downlo

我想在MVC4 web应用程序中显示包含编辑和创建视图目录中文件列表的下拉框。我在控制器的编辑部分中使用过:

DirectoryInfo directory = new DirectoryInfo(Server.MapPath("~/DownloadFiles"));
var filesListing = directory.GetFiles().ToList<FileInfo>();
ViewBag.zipListing = filesListing;
它工作正常,(DownloadName是表字段的名称),它更新字段并在编辑页面加载上显示正确的db表项但是如果我试图在Create视图中使用它,它会出错,抱怨为Null或找不到引用

我有一份区块的副本:

DirectoryInfo directory = new DirectoryInfo(Server.MapPath("~/DownloadFiles"));
var filesListing = directory.GetFiles().ToList<FileInfo>();
ViewBag.zipListing = filesListing;
DirectoryInfo directory=newdirectoryinfo(Server.MapPath(“~/DownloadFiles”);
var filesListing=directory.GetFiles().ToList();
ViewBag.zipListing=文件列表;
在控制器的Create部分,重命名了var filelisting和ViewBag.zipListing以避免混淆(我想我应该将dir reading放在一个地方,但可能一次只列出一件事。)

你知道如何使用这个目录列表作为创建视图的下拉列表吗?
我尝试了许多变化,但似乎没有任何效果。感谢您抽出时间。

您是否想过只向绑定到创建视图的模型添加属性,而不是使用ViewBag,如下所示:

public List<FileInfo> FileList 
    {
        get
        {
            DirectoryInfo directory = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/DownloadFiles"));
            return directory.GetFiles().ToList<FileInfo>();
        }
    }
公共列表文件列表
{
得到
{
DirectoryInfo directory=newdirectoryinfo(HttpContext.Current.Server.MapPath(“~/DownloadFiles”);
返回目录.GetFiles().ToList();
}
}

当您导航到创建页面时,您的
Create
操作方法是否被点击?如果我从创建页面中取出下拉列表,其他一切都可以工作,那么,在[HttpGet]的创建页面中包含viewBag.zipListing作为empty调试,并检查您的viewBag是否为空。它是空的。但是,为什么在编辑视图中添加@if(ViewBag.zipListing!=null){@ViewBag.zipListing}时,我会得到一个“System.Collections.Generic.List`1[System.IO.FileInfo]”,而在创建视图中什么都没有??比以往任何时候都更困惑:)@user1295445-很高兴能帮上忙。
public List<FileInfo> FileList 
    {
        get
        {
            DirectoryInfo directory = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/DownloadFiles"));
            return directory.GetFiles().ToList<FileInfo>();
        }
    }