2013-04-18 55 views
0

我有一個模型IPACS_Master_List,它是數據庫中名爲IPACS_Master_List的表的完整映射。使用一個模型來獲取多個數據變體

這裏是我的控制器:

public ActionResult Index() 
     { 
      var docs = db.IPACS_Master_List; 

      return View(docs); 
     } 

在我看來,我顯示整個表。在我看來,我試圖添加一個DropDownList,這些將填充到每個部門。

我需要傳遞整個表格,因爲這是該頁面的默認視圖,可以查看錶格中的所有內容。我試圖抓住一個明確的部門清單並將其投入到DropDownList中。我嘗試了很多不同的方式,並一直跑到一堵磚牆上。在這一點上,我將採取任何有效的方法。

也明白我對MVC,LINQ和Razor很新,所以額外的解釋是讚賞。

默認視圖完美地工作,它正確顯示所有信息。但我甚至無法填充下拉列表。

-----編輯#1 ----

這是一種方法,我搶部門的不同列表。不知道這是否是正確的方式,但會提供希望它有幫助。

var departments = db.IPACS_Master_List.Where(x => (x.department != null)) 
       .Select(s => new SelectListItem 
       { 
        Value = s.department, 
        Text = s.department 
       }) 
       .Distinct(); 
+0

是你試圖只顯示一個單獨的下拉列表與不同的部門在你的mvc查看和沒有其他數據? – Somedeveloper

+0

@NBrowne此視圖當前顯示整個表格,當你第一次訪問它。我想提供兩個下拉框,一個填充部門,另一個填充程序。所以當用戶選擇一個選項時,它會過濾掉數據。但現在我只關注試圖讓下拉列表填充和可見。 –

回答

0

我能夠得到它的工作,偶然通過教程網站的答案。

我的控制器:

public ActionResult Index() 
     { 
      var docs = db.IPACS_Master_List; 

      ViewBag.Departments = db.IPACS_Master_List.Where(x => (x.department != null)).Select(s => new SelectListItem 
      { 
       Value = s.department, 
       Text = s.department 
      }) 
      .Distinct(); 

      return View(docs); 
     } 

,我已將此添加視圖。

@Html.DropDownList("Departments", string.Empty) 
2

在模型中的IM假設u有這樣的事情:

public class YourModel{ 
public IEnumerable<SelectListItem> Departments{get;set;} 
public string SelectedDepartment{get;set;} 

} 

您認爲應該有這樣的事情來渲染

@Html.DropDownListFor(model => model.SelectedDepartment, new SelectList(@Model.Departments, "key", "value", Model.SelectedDepartment)) 

在你的控制器,你將有一些像這樣

YourModel model=new YourModel(); 
model.Departments = db.IPACS_Master_List.Where(x => (x.department != null)) 
       .Select(s => new SelectListItem 
       { 
        Value = s.department, 
        Text = s.department 
       }) 
       .Distinct(); 
return View(model); 
+0

我沒有爲選擇列表設置模型,我不確定如何製作包含我需要的當前模型的新模型,併爲選擇列表項添加功能。所以我只是用viewbag來解決它。對於mvc還是很新的。 –

+0

我知道你可以很容易地在MVC中的另一個模型中容納一個模型。另外請注意,當您嘗試將您的Mvc模型發佈到您的控制器操作時,執行@ Html.DropDownList(「Departments」,string.Empty)將name屬性設置爲string.Empty會導致您遇到問題。您會發現SelectedDepartment始終爲空,這是因爲模型聯編程序使用頁面上的元素名稱來確定值。 – Somedeveloper

+0

同樣不錯的一步一步的指導與MVC在這裏斯科特gutheries博客http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx。此外,這裏有29個視頻用於MVC 2,但仍適用於MVC的新版本,我認爲您會發現它非常有用。 http://www.asp.net/mvc/videos/mvc-2/how-do-i/creating-a-tasklist-application-with-aspnet-mvc – Somedeveloper

相關問題