首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC 3显示来自另一个控制器的数据

MVC 3显示来自另一个控制器的数据
EN

Stack Overflow用户
提问于 2014-04-08 05:32:34
回答 2查看 58关注 0票数 0

我有两个控制器事件和学生,

我想在活动中以下拉列表的形式显示学生姓名?

学生包含姓名和年龄

事件应包含学生姓名和日期的下拉列表。

代码语言:javascript
复制
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; }
}
EN

回答 2

Stack Overflow用户

发布于 2014-04-08 05:37:35

创建另一个为您提供学生列表的类-例如StudentProvider。然后编辑您的事件模型并在其中添加一个学生列表。在事件控制器中,根据StudentProvider的结果初始化这个列表。然后在您的事件视图上显示此列表。

这种“提供者”模式将确保分离关注点,您不必担心将两个控制器组合在一起。

票数 0
EN

Stack Overflow用户

发布于 2014-04-08 21:48:39

如果我的猜测是正确的,那么这就是您希望在应用程序中发生的事情。

首先在你的“事件”模型中添加以下内容。

代码语言:javascript
复制
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");
        }
}

其次,在控制器中实例化模型并将其返回到视图。

代码语言:javascript
复制
public ActionResult SampleView()
{
    var model = new Event();
    model.GetStudents(); //call GetStudent method so the DropDownStudent object will be populated.
    return View(model);
}

在您的视图中,使用"Event“作为您的模型,并添加一个@Html.DropDownListFor,如下所示。

代码语言:javascript
复制
@model ProjectName.Model.Event

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

}

我希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22923528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档