首页 > 解决方案 > 为什么视图无法在客户端显示学生数据并且它是 ASP.NET MVC?

问题描述

首先这些是模型类:

public class Student
{
    public int ID;
    public string Name;
    public string RollNo;
    public string Branch;
    public string Course;
    public string Year;
}

public class StudentData
{
    public IEnumerable<Student> Data()
    {
        List<Student> StudentsList = new List<Student>();

        Student[] SArr = new Student[4];
        SArr[0].ID = 1;
        SArr[0].Name = "Narender";
        SArr[0].RollNo = "0177EC161067";
        SArr[0].Branch = "EC";
        SArr[0].Course = "B.E";
        SArr[0].Year = "IV";

        StudentsList.Add(SArr[0]);

        SArr[1].ID = 2;
        SArr[1].Name = "Sandeep";
        SArr[1].RollNo = "0177CS161001";
        SArr[1].Branch = "CSE";
        SArr[1].Course = "B.E";
        SArr[1].Year = "IV";

        StudentsList.Add(SArr[1]);
        return StudentsList;
    }
}

这是控制器:

public class MainController : Controller
{
    public ActionResult Index()
    {
        StudentData students = new StudentData();
        IEnumerable<Student> s = students.Data();

        return View(s.ToList());
    }
}

观点是这样的:

@model IEnumerable<FirstApp.Models.Student>
<table width="400">
<th>ID</th>
<th>Name</th>
<th>Roll Number</th>
<th>Branch</th>
<th>Course</th>
<th>Year</th>
@foreach (var s in Model)
    {
        <tr>
            <td>@s.ID</td>
            <td>@s.Name</td>
            <td>@s.RollNo</td>
            <td>@s.Branch</td>
            <td>@s.Course</td>
            <td>@s.Year</td>
        </tr>``
    }
</table>

我收到一个错误:

你调用的对象是空的。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

源错误:

第 26 行:SARr[0].ID = 1;

标签: c#asp.net-mvc

解决方案


这是更新的视图

@using FirstApp.Models
@model IEnumerable<Student>
<table width="400">
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Roll Number</th>
        <th>Branch</th>
        <th>Course</th>
        <th>Year</th>
    </tr>
    @foreach (var s in Model)
    {
        <tr>
            <td>@s.ID</td>
            <td>@s.Name</td>
            <td>@s.RollNo</td>
            <td>@s.Branch</td>
            <td>@s.Course</td>
            <td>@s.Year</td>
        </tr>
    }
</table>

更新的模型将是:

public class Student
    {
        public int ID;
        public string Name;
        public string RollNo;
        public string Branch;
        public string Course;
        public string Year;
    }

    public class StudentData
    {
        public IEnumerable<Student> Data()
        {
            return new List<Student>{
                new Student{
                ID = 1,
                Name = "Narender",
                RollNo = "0177EC161067",
                Branch = "EC",
                Course = "B.E",
                Year = "IV"
                },
                new Student{
                    ID = 2,Name = "Sandeep",
                    RollNo = "0177CS161001",
                    Branch = "CSE",
                    Course = "B.E",
                    Year = "IV"
                }
            };
        }
    }

推荐阅读