Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象引用未设置为局部视图上对象的实例_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Partial Views - Fatal编程技术网

C# 对象引用未设置为局部视图上对象的实例

C# 对象引用未设置为局部视图上对象的实例,c#,asp.net,asp.net-mvc,asp.net-mvc-4,partial-views,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Partial Views,可能重复: 在下面的代码中,您可以看到我的控制器操作代码、查看页面和模型类。每次运行应用程序时,我都会收到错误消息:对象引用未设置为对象的实例。此消息出现在视图中,lint以foreach(变量项在(IEnumerable…)开头。如何解决此问题 控制器: public ActionResult Upload() { var FilesInfoData = new List<FileInfoModel>(){

可能重复:

在下面的代码中,您可以看到我的控制器操作代码、查看页面和模型类。每次运行应用程序时,我都会收到错误消息:对象引用未设置为对象的实例。此消息出现在视图中,lint以
foreach(变量项在(IEnumerable…)
开头。如何解决此问题

控制器:

public ActionResult Upload()
    {          

        var FilesInfoData = new List<FileInfoModel>(){

             new FileInfoModel(){Name = "sa",Length = 5, LastWriteTime = DateTime.Now},
             new FileInfoModel(){Name = "saa",Length = 5, LastWriteTime = DateTime.Now}

            };

        ViewData["FilesInfoView"] = FilesInfoData;


        return View();
    }

如果您的局部视图总是在
ViewData
中的
FileInfoModel
集合中循环,那么将其模型类型设置为
IEnumerable
并将其发送到局部视图不是更好吗

另外,您需要对模型进行空检查,因为在渲染局部视图时,您的集合似乎为空

像这样:

public ActionResult Upload()
{          
    var model = new List<FileInfoModel>(){

         new FileInfoModel(){Name = "sa",Length = 5, LastWriteTime = DateTime.Now},
         new FileInfoModel(){Name = "saa",Length = 5, LastWriteTime = DateTime.Now}
        };

    return View(model);
}

如果您的局部视图总是在
ViewData
中的
FileInfoModel
集合中循环,那么将其模型类型设置为
IEnumerable
并将其发送到局部视图不是更好吗

另外,您需要对模型进行空检查,因为在渲染局部视图时,您的集合似乎为空

像这样:

public ActionResult Upload()
{          
    var model = new List<FileInfoModel>(){

         new FileInfoModel(){Name = "sa",Length = 5, LastWriteTime = DateTime.Now},
         new FileInfoModel(){Name = "saa",Length = 5, LastWriteTime = DateTime.Now}
        };

    return View(model);
}

你能为此写一些快照示例吗?@user699503检查我的编辑,我添加了一个示例。好的,这正是我想要的,但只需要一个小帮助。当我按照你的建议将所有这些放在模型中时,我的部分视图在aspx页面中打开,而不是在新页面(Upload.ascx)中打开。在aspx页面上,我这样称呼它:
您需要将局部视图传递给模型,如下所示:
(然后取下
@
,您没有使用Razor)好的,我这样做了,但我的Upload.aspx仍然作为单独的页面打开,而不是在Index.aspx上,我在那里调用它。你能为此编写一些快照示例吗?@user699503检查我的编辑,我添加了一个示例。好的,这正是我想要的,但只需要一个小帮助。当我按照你的建议将所有这些都放在模型中时,我的部分视图不会在我称之为t的aspx页面中打开han在新页面上(Upload.ascx)。在aspx页面上,我这样称呼它:
你需要将部分视图传递给模型,就像这样:
(然后取下
@
,你没有使用Razor)好的,我这样做了,但我的Upload.aspx仍然作为单独的页面打开,而不是在我称之为Index.aspx的地方
public ActionResult Upload()
{          
    var model = new List<FileInfoModel>(){

         new FileInfoModel(){Name = "sa",Length = 5, LastWriteTime = DateTime.Now},
         new FileInfoModel(){Name = "saa",Length = 5, LastWriteTime = DateTime.Now}
        };

    return View(model);
}
<% model IEnumerable<FileInfoModel> %>
if (Model != null)
{
    foreach (var item in Model)
    {
       //do stuff
    }
}