控制器通过ViewData查看
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了控制器通过ViewData查看相关的知识,希望对你有一定的参考价值。
这是查看文件此处显示列表中学生的错误
@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>
这是一个控制器文件,它有一个列表和viewdata,用于将数据从控制器传输到View。模型也很好地定义但不知道它不起作用。
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);
}
答案
很高兴知道究竟什么不起作用。但还有两件事:
- 使用模型或ViewData的视图。
- 我想你得到一个包含“std.StudentName”的3个项目的列表,那是因为它必须读取@std.StudentName
另一答案
在控制器中使用以下代码
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>
希望它能工作,因为我直接使用模型而不是将其转换为列表。
以上是关于控制器通过ViewData查看的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC - 在基本控制器中为母版页设置 ViewData
在 .Net Core 2.2 项目中使用 View 和 ViewData 时出错——
Asp.net mvc基础Controller给View传递数据的方式