MVC 3 在另一个控制器中显示来自控制器的数据
本文关键字:控制器 数据 显示 另一个 MVC | 更新日期: 2023-09-27 17:57:18
我有 2 个控制器事件和学生,
我想在事件中以下拉列表的形式显示学生姓名?
学生包含姓名和年龄
事件应包含学生姓名和日期的下拉列表。
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime DOB{ get; set; }
public string Class { get; set; }
public int grade { get; set; }
public string teeth { get; set; }
public string heart{ get; set; }
public string eye{ get; set; }
public string genitals { get; set; }
}
创建另一个为您提供学生列表的类 - 例如 StudentProvider。然后编辑您的事件模型并添加学生列表。在事件控制器中,通过学生提供程序的结果初始化此列表。然后在活动视图中显示此列表。
这种"提供程序"模式将确保关注点分离,并且您不必担心将两个控制器组合在一起。
如果我的猜测是正确的,这就是您希望在应用程序中发生的情况。
首先在"事件"模型中添加以下内容。
public class Event
{
public int StudentID {get; set;}
public IEnumerable<SelectListItem> DropDownStudent { get; set; }
public void GetStudents()
{
var list = studentcontext.Select(e => new { Value = (int)e.ID, Text = e.Name.ToString() }).ToList();
DropDownStudent = new SelectList(list, "Value", "Text");
}
}
其次,在控制器中实例化模型并将其返回到视图。
public ActionResult SampleView()
{
var model = new Event();
model.GetStudents(); //call GetStudent method so the DropDownStudent object will be populated.
return View(model);
}
在您的视图中,使用"事件"作为模型并添加一个 @Html.DropDownList用于这样。
@model ProjectName.Model.Event
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.StudentID, Model.DropDownStudent)
}
我希望这有所帮助。