2014-04-07 45 views
0

我有2個控制器事件和學生,MVC 3顯示來自控制器的另一個數據

我想在事件中顯示學生姓名作爲下拉列表?

學生含有姓名和年齡

事件應該包含學生姓名和日期的下拉列表。

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; } 
} 
+2

你有一個屬性爲生殖器?! 你到目前爲止嘗試了哪些代碼? –

+0

其醫生健康菜單的一部分, 我的重點是名稱和年齡。 – Mslim

回答

0

創建另一個爲您提供學生列表的類 - 例如StudentProvider。然後編輯您的活動模型並在其中添加學生列表。在您的事件控制器中,根據StudentProvider的結果初始化此列表。然後在您的活動視圖中顯示此列表。

這種「供應商」模式將確保顧客分離,並且不必擔心將兩個控制器組合在一起。

+0

我是mvc3的新手,所以如果你能告訴我任何一個例子,我會非常感激。 – Mslim

0

如果我的猜測是正確的,這就是你想要在你的應用程序中發生的事情。

首先在您的「事件」模型中添加以下內容。

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) 

} 

我希望這可以幫到你。

相關問題