cha*_*ara 3 c# asp.net asp.net-mvc razor asp.net-mvc-4
我有一个场景,我不想将模型作为Ienumerable列表传递给Razor View.
public class School
{
public int ID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要传递模型以查看如下.
@model Doc.Web.Models.Common.School
Run Code Online (Sandbox Code Playgroud)
不是
@model IEnumerable<Doc.Web.Models.Common.School>
Run Code Online (Sandbox Code Playgroud)
所以,我在同一个模型中对一个List进行了decalred
public class School
{
public School()
{
lstSchool = new List<School>();
}
public int ID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public List<School> lstSchool { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在控制器中
public ActionResult Index()
{
School model= new School();
SchoolRepository rep = new SchoolRepository();
model.lstSchool= rep.GetData();//Read list of schools from database
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
这是实现这个目标的正确方法吗?
你为什么要传递@model Doc.Web.Models.Common.School给视图?您需要在视图中使用"列表"的位置.
这是你可以尝试的东西......
类结构:创建一个SchoolList类
public class School
{
public int ID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
public class SchoolList
{
public List<School> Schools { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
传递给视图:
@model Doc.Web.Models.Common.SchoolList
Run Code Online (Sandbox Code Playgroud)
控制器:
public ActionResult Index()
{
SchoolList model= new SchoolList();
SchoolRepository rep = new SchoolRepository();
//Read list of schools from database
model.Schools = rep.GetData();
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
因此,这样您就不需要将IEnumerable传递给视图并完成工作.
| 归档时间: |
|
| 查看次数: |
8694 次 |
| 最近记录: |