通过ViewData进行查看的控制器

时间:2018-12-04 17:58:19

标签: asp.net-mvc

这是此处的查看文件,显示列表中学生的错误

@model IEnumerable<Controller2View.Models.Students>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div class="container">
    <div class="btn btn-default">
       <ul class="list-group">
    @foreach (var std in ViewData["StudentData"] as List<Students>)
    {
        <li class="list-unstyled">
            std.StudentName
        </li>
    }

</ul>
</div>

</div>
</body>
</html>

这是控制器文件,具有定义的列表和用于将数据从控制器传输到View的viewdata。模型也定义得很好,但不知道它不起作用。

public ActionResult Index()
    {
    List<Students> studentList = new List<Students>() {
                new Students(){ StudentId=1, StudentName="Steve"},
                new Students(){ StudentId=2, StudentName="Bill"},
                new Students(){ StudentId=3, StudentName="Ram"}
            };
        ViewData["StudentData"] = studentList;
        return View(studentList);
    }

2 个答案:

答案 0 :(得分:0)

最好知道到底什么不起作用。但是还有两件事:

  1. 将视图用于模型与ViewData一起使用。
  2. 我想您会收到3个带有“ std.StudentName”的项目的列表,这是因为它必须显示 @ std.StudentName

答案 1 :(得分:0)

在控制器中使用以下代码

public ActionResult Index()
    {
    var studentList = new List<Students>() {
                new Students(){ StudentId=1, StudentName="Steve"},
                new Students(){ StudentId=2, StudentName="Bill"},
                new Students(){ StudentId=3, StudentName="Ram"}
            };

        return View(studentList);
    }

现在,在View中使用以下代码

@model IEnumerable<Controller2View.Models.Students>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div class="container">
    <div class="btn btn-default">
       <ul class="list-group">
        @foreach (var std in Model)       
        {
        <li class="list-unstyled">
            std.StudentName
        </li>
        }    
       </ul>
    </div>    
</div>
</body>
</html>

希望它可以像我直接使用模型一样工作,而不是将其强制转换为列表。