C# 如何在控制器的actionresult中调用tolist()方法

C# 如何在控制器的actionresult中调用tolist()方法,c#,sql-server,asp.net-mvc,C#,Sql Server,Asp.net Mvc,如何在控制器的ActionResult中调用下表方法 public StudRes<List<Student>> GetStudent() { Database SQLCon = new Database(); DataTable dt = new DataTable(); string query = @"select s.items StudentName from StudentData t1 outer apply dbo.Split(t

如何在控制器的ActionResult中调用下表方法

public StudRes<List<Student>> GetStudent()
{
    Database SQLCon = new Database();
    DataTable dt = new DataTable();

    string query = @"select s.items StudentName from StudentData t1 outer apply dbo.Split(t1.StudentName, ',') s";

    dt = SQLCon.getDatatableFromSQL(query);

    return new LinkRes<List<Student>>()
    {
        result = dt.dtHavingRow(),
        data = (from rw in dt.AsEnumerable()
                select new Student
                {
                    StudentName= rw["StudentName"].ToString(),
                }).ToList()
     };
}
public StudRes GetStudent()
{
数据库SQLCon=新数据库();
DataTable dt=新的DataTable();
字符串查询=@“从StudentData t1外部应用dbo.Split(t1.StudentName,,,)s中选择s.items StudentName”;
dt=SQLCon.getDatatableFromSQL(查询);
返回新链接()
{
结果=dt.dtHavingRow(),
数据=(来自dt.AsEnumerable()中的rw)
选择新学生
{
StudentName=rw[“StudentName”].ToString(),
})托利斯先生()
};
}
控制器:

public ActionResult StudentCode()
{
    var _Student = new StudRes<List<Student>>();
    var _StudentInfor = new StudentInfor ();
    StudAct _Act = new StudAct();
    _Student = _Act.GetStudent(Cookies.GetCookies("StudentName"));
    _StudentInfor = _Act.GetStudentInfor(Cookies.GetCookies("StudentName"));
    string stud = String.Foramt(_Student.StudentName,_StudentInfor.Email);
}
public ActionResult StudentCode()
{
var_Student=新学生();
var_studentInfo=新studentInfo();
StudAct _Act=新StudAct();
_学生=_Act.GetStudent(Cookies.GetCookies(“学生名”);
_StudentInfo=_Act.getStudentInfo(Cookies.GetCookies(“StudentName”));
string stud=string.Foramt(_Student.StudentName,_studentfor.Email);
}
对于“\u Student.StudentName”显示错误

CS1061:StudRes>不包含的定义 “StudentName”和没有扩展方法“StudentName”接受第一个 找不到类型为“StudRes>”的参数(是否为 缺少using指令或程序集引用


我认为您需要的是只返回1个student而不是列表。您可能需要重新编写GetStudent方法。否则,在控制器上,
\u student.data.First().StudentName
应该可以工作。此外,在GetStudent方法中,您有一个输入错误
SrudentName=rw[“StudentName”]。ToString()
应该是
StudentName=rw[“StudentName”]。ToString()

编辑1

public class Student
    {
        public string StudentName { get; set; }
        public string StudentEmail { get; set; }
    }

    public StudRes<List<Student>> GetStudents()
    {
        Database SQLCon = new Database();
        DataTable dt = new DataTable();

        string query = @"select s.items StudentName from StudentData t1 outer apply dbo.Split(t1.StudentName, ',') s";

        dt = SQLCon.getDatatableFromSQL(query);

        var results = new StudRes<List<Student>>()
        {
            result = dt.Rows.Count,
            data = (from rw in dt.AsEnumerable()
                    select new Student
                    {
                        StudentName = rw["StudentName"].ToString(),
                    }).ToList()
        };
        foreach (var stu in results.data)
        {
            stu.StudentEmail = GetStudentInfor(stu.StudentName);
        }
        return results;
    }

 public ActionResult StudentCode()
        {
            StudAct _Act = new StudAct();
            var _Student = _Act.GetStudents();

            return View("Name of your view", _Student.ToList());
        }
公共班级学生
{
公共字符串StudentName{get;set;}
公共字符串StudentEmail{get;set;}
}
公共学生
{
数据库SQLCon=新数据库();
DataTable dt=新的DataTable();
字符串查询=@“从StudentData t1外部应用dbo.Split(t1.StudentName,,,)s中选择s.items StudentName”;
dt=SQLCon.getDatatableFromSQL(查询);
var结果=新的StudRes()
{
结果=dt.Rows.Count,
数据=(来自dt.AsEnumerable()中的rw)
选择新学生
{
StudentName=rw[“StudentName”].ToString(),
})托利斯先生()
};
foreach(results.data中的var stu)
{
stu.StudentEmail=getstudentin(stu.StudentName);
}
返回结果;
}
公共行动结果学生代码()
{
StudAct _Act=新StudAct();
var_Student=_Act.GetStudents();
返回视图(“视图名称”,_Student.ToList());
}

如果我需要返回列表,我应该如何调用控制器中的结果?我不确定您想做什么,但我建议如何在控制器中检索StudRes列表。请参阅编辑1。非常感谢您的上述回答。我想实现的是显示.ToList方法中的结果数据