繁体   English   中英

MVC 3在另一个控制器中显示数据

[英]MVC 3 display data from a controller in another

我有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。 然后编辑您的事件模型并在其中添加学生列表。 在事件控制器中,根据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.DropDownListFor。

@model ProjectName.Model.Event

@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.StudentID, Model.DropDownStudent)

}

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM