【发布时间】:2016-04-29 22:08:38
【问题描述】:
我正在学习 asp.net MVC,我正在尝试构建一个应用程序,但我的视图中无法显示数据。我在这里搜索,但无法找到此问题的答案。 我有一个模型结构,其中 Person 是我的基类和从 Person 继承的另外两个类 - 教授和学生。 我想要的是当我在我的应用程序中单击学生选项卡时,它只显示学生数据,当我单击教授时,它只显示教授数据以及他们的公共数据和每种类型的特定数据。现在我只有一张带有学生和教授属性的“人”表。 提前致谢!!
这是我的基类 Person 和子类 Professor 和 Student
public abstract class Person
{
public virtual int PersonID { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string Email { get; set; }
public virtual string Login { get; set; }
public virtual string Senha { get; set; }
public virtual string Address { get; set; }
}
public class Professor : Person
{
public string CREF { get; set; }
public string Education { get; set; }
public virtual ICollection<Session> Sessions { get; set; }
}
public class Student : Person
{
public DateTime SessionStart { get; set; }
public DateTime SessionEnd { get; set; }
public virtual ICollection<TSession> Sessions { get; set; }
}
这是我的 StudentController
public class StudentController : Controller
{
private SessionContext db = new SessionContext();
public ActionResult Index()
{
return View(db.People.ToList());
}
}
这是我的索引学生视图
....
<table class="table">
<tr>
<th>@Html.DisplayNameFor(model => model.FirstName)</th>
<th>@Html.DisplayNameFor(model => model.LastName)</th>
....
</tr>
@foreach (var item in Model) {
<tr>
<td>@Html.DisplayFor(modelItem => item.FirstName)</td>
<td>@Html.DisplayFor(modelItem => item.LastName)</td>
....
</tr>
}
</table>
【问题讨论】:
-
如果你有一个表,那么你需要一个属性来识别一个人是
Professor还是Student,你可以根据该属性过滤结果 -
另请参考How to create a Minimal, Complete, and Verifiable example - 99% 的代码与问题无关。
-
您发布了
AccountController,而不是StudentController。那是一堆我认为不相关的身份验证代码。 -
我认为您粘贴的是 AccountController 而不是 StudentController。
-
对不起,我没有注意到。
标签: c# asp.net asp.net-mvc asp.net-mvc-5