2013-04-11 103 views
0

在我的ASP.NET MVC應用程序中,我想在創建和編輯某些項目時向用戶提供下拉菜單。我在我的數據庫dd_data中有一個表,它看起來像這樣:dd_name,dd_value,dd_type。ASP.NET MVC DropDown from Database,Binding

我想展示他們的Thew觀點是完全無關的。這些是通用的下拉菜單,例如語言,貨幣和星期幾等,例如:「美元」,「840」,「貨幣」

請注意,我的例子非常通用,實際上有自定義數據在桌子裏。

我應該爲每個下拉菜單創建模型/控制器/視圖嗎?做這個的最好方式是什麼?

我見過很多使用DropDownForList的例子,但數據通常在模型中可用。在這種情況下,我想使用一個不相關的表格來填充當前模型中的一個預設值。

+0

將列表放入您的ViewModel作爲屬性。引用DropDownForList中的屬性。或者,您可以將列表放入ViewBag中並從那裏引用它。 – 2013-04-11 20:16:28

+0

我想我無法弄清楚如何訪問數據,我是否需要創建一個上下文來訪問它? – chongo2002 2013-04-11 20:23:40

+0

這裏有一些很好的一般指導:http://odetocode.com/Blogs/scott/archive/2010/01/18/drop-down-lists-and-asp-net-mvc.aspx。雖然它有點過時,但它應該給你一個總體思路。 – 2013-04-11 20:25:05

回答

1

根據你的問題和你留下的附加評論,聽起來你對MVC相對陌生,以及對Entity Framework不熟悉?在這種情況下,我強烈建議在http://www.asp.net/mvc 上提供免費的Pluralsight視頻。

檢查右側邊欄上的鏈接,聽起來像「使用數據第1部分」是你所追求的。它們是很好的引物,可以讓你快速啓動。看起來視頻已經更新了VS2012和MVC4,但是如果你仍然在VS2010和MVC3上,他們仍然有舊版本可用here。只需點擊「從Pluralsight培訓」鏈接。這就是說,如果你已經安裝了VS的NuGet,你可以添加一個快速參考實體框架,並有一個代碼第一上下文運行真正快速。如果添加一個連接字符串,以你的web.config並將其命名爲說...「MyContext」,那麼你可以只添加一些像這樣的項目:

using System; 
using System.Data.Entity; 
using System.Data.Entity.Infrastructure; 

namespace MyProject.CoolNameSpace 
{ 
    public class MyContext : DbContext 
    { 
     public DbSet<dd_data> DataEntities { get; set; } 
    } 

    public class dd_data 
    { 
     public string dd_name { get; set; } 
     public string dd_value { get; set; } 
    } 
} 

你現在將有一個工作上下文。一個糟糕的人,這些類應該在他們的文件中有適當的命名空間等......但你明白了。

從那裏你可以把你的模型附加到你的視圖,並回答你原來的問題我會使用一個視圖模型,暴露你的dd_data列表作爲屬性,單個dd_value爲選定的屬性,然後使用一個DropdownFor創建你的選擇列表。

視圖模型:

public class MyViewModel 
{ 
    public List<dd_data> MyDataList { get; set; } 
    public string SelectedValue { get; set; } 
} 

某處在查看:

​​

希望這將讓你開始,但認真看那些PluralSight視頻的,他們是偉大的。乾杯。