C# 如何在控制器的actionresult中调用tolist()方法
如何在控制器的ActionResult中调用下表方法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
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方法中的结果数据