从db填充下拉列表

Div*_*Dan 3 entity-framework-4 asp.net-mvc-3

我有一个mvc 3应用程序,在我的实体框架中有2个表.

PurchaseTable是PurchaseID,PurchaseDate和ProductID我有另一个名为Product的表,其中包含ProductID和ProductName.创建新视图以插入新购买如何将ProductID视图中的文本框更改为Product表中ProductName限定的下拉列表?

RPM*_*984 6

创建一个ViewModel:

public class CreatePurchaseViewModel
{
   public Purchase Purchase { get; set; }
   public IEnumerable<SelectListItem> Products { get; set; }
   public int SelectedProductId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用ViewModel设置视图:

[HttpGet]
public ActionResult CreateProduct()
{
   var model = new CreatePurchaseViewModel
   {
      Products = repository.FindAllProducts().Select(x =>
              new SelectListItem
              {
                  Text = x.ProductName,
                  Value = x.ProductId
              }
   };

   return View(model);
}
Run Code Online (Sandbox Code Playgroud)

然后只需绑定到ViewModel并使用DropDownListFor HTML Helper:

<! -- other code to bind to Purchase, and then: -->

<%= Html.DropDownListFor(x => x.SelectedProductId, Model.Products) %>
Run Code Online (Sandbox Code Playgroud)

然后,当您提交表单时,SelectedProductId模型中的值将使用下拉列表中的选定值进行填充.