Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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 Mvc_Razor - Fatal编程技术网

C# 在模型中列出要查看的控制器?

C# 在模型中列出要查看的控制器?,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我正在学习MVC5,但我找不到无法访问视图中的名称列表的原因?我肯定我做错了什么,但我不明白为什么,我希望能得到一些帮助来继续下去 在控制器中,我测试了如何使用ViewBag,并通过返回列表,然后使用@Model 模型类: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVC_1.Models { public class ListNames

我正在学习MVC5,但我找不到无法访问视图中的名称列表的原因?我肯定我做错了什么,但我不明白为什么,我希望能得到一些帮助来继续下去

在控制器中,我测试了如何使用
ViewBag
,并通过返回列表,然后使用
@Model

模型类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MVC_1.Models
{
    public class ListNames
    {
        public static List<string> names;

        // Constructor
        public ListNames()
        {
            // Create list
            names = new List<string>();
            // Add some names to list
            names.Add("Anna");
            names.Add("Linda");
            names.Add("Petra");
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
名称空间MVC_1.0模型
{
公共类列表名
{
公共静态列表名称;
//建造师
公共列表名()
{
//创建列表
名称=新列表();
//在列表中添加一些名称
姓名。添加(“安娜”);
姓名。添加(“琳达”);
名称。添加(“Petra”);
}
}
}
控制器:

public ActionResult ListNames(List<string> Names)
    {
        ViewBag.Name = Names[0];

        return View(Names);
    }
public ActionResult列表名(列表名)
{
ViewBag.Name=名称[0];
返回视图(名称);
}
视图:

@model MVC_1.Models.ListNames
@{
ViewBag.Title=“ListNames”;
}
名单名称
@查看包。名称

@型号


您忘记将
get
set
添加到模型内的列表中

public class ListNames
{
    public List<string> names { get; set; }
    //rest of the code
}
视图:

@model MVC_1.Models.ListNames
@{
ViewBag.Title=“ListNames”;
}
名单名称
@查看包。名称

@foreach(Model.names中的变量名) { @名字

}
顶部提示:不要为查看包而烦恼。使用强类型viewmodel(与视图关联的
)。根据我的经验,使用
ViewBag
会使事情变得难以理解,有时会导致难以发现错误-例如没有意识到对象或属性尚未初始化。您的模型是一个列表,因此您需要在视图中对其进行迭代以显示元素。您实际上想做什么。GET方法不应具有参数
列表名称
(在方法中初始化模型)。您已经显示了一个模型
ListNames
,但从未在任何地方使用过它。并且您没有将正确的模型传递给视图(您将
列表
传递给一个需要类型为
列表名
的视图),谢谢您的评论!谢谢你的回答!我添加了your代码,但我仍然无法获得@Model的值??是否应该有类似@Model.Names的内容?假设我想为每个循环创建一个循环,那么我需要使用类似于…1foreach或其他方法迭代
Model.Names
。抱歉,但我在这一行下面有一条红线:@name

这是什么原因?@front-back我的错,我忘记了
@
foreach
前面。当我运行代码时,我在@foreach处得到一个空异常引用。。。。行:(列表是空的吗!?像我在使用add(“Linda”)的构造函数中那样向列表中添加名称是错误的吗?因为列表现在是一个属性?我感谢您的帮助!
public class ListNames
{
    public List<string> names { get; set; }
    //rest of the code
}
public ActionResult ListNames()
{
    var listNames = new MVC_1.Models.ListNames();
    ViewBag.Name = listNames.names[0];

    return View(listNames);
}
@model MVC_1.Models.ListNames

@{
    ViewBag.Title = "ListNames";
}

<h2>ListNames</h2>

<p>@ViewBag.Name</p>
@foreach(var name in Model.names)
{
   <p>@name</p>
}