2

我希望在 .NET MVC 中实现,但试图弄清楚如何实际做到这一点。目前在我的 ViewModel 上,我有(例如):

public class GroupPolicyViewModel
{
   public int PolicyId { get; set; }
   public int HistoryId{ get; set; }
   public SelectList ProductList { get; set; } // tried this
   public List<Product> ProductList1 { get; set; } // tried this
}

每当我尝试从这个 ViewModel 自动生成我的视图时,ProductList 都会被忽略。有没有办法从 ViewModel 自动生成 DropDownList?

4

2 回答 2

5

有型号

public class GroupPolicyViewModel
{
   public int PolicyId { get; set; }
   public int HistoryId{ get; set; }
   public int SelectedProductId{ get; set; }   
   public List<Product> ProductList { get; set; } 
}

您可以创建 DropDownList

@Html.DropDownListFor(m => m.SelectedProductId, 
                  new SelectList(Model.ProductList, "ProductId", "ProductName"))

或者,如果您的模型中有 SelectList of products

@Html.DropDownListFor(m => m.SelectedProductId, Model.ProductSelectList)

如果你想要一些生成的代码,你需要使用脚手架选项来提供数据上下文类。这是很好的教程MVC 音乐商店

于 2013-01-17T16:16:12.503 回答
2

您可以(来自 VS2010)在创建新控制器和使用实体框架时。在向导中指定包括实体框架和读/写操作,向导将创建控制器和视图。

在此处输入图像描述

它会在控制器中生成这样的代码[还有更多]:

   public ActionResult Create()
    {
        ViewBag.CostCentre_ID = new SelectList(db.CostCentres, "ID", "Name");
        ViewBag.Location_ID = new SelectList(db.Locations, "ID", "Name");
        ViewBag.User_ID = new SelectList(db.UCMUsers, "User_ID", "EmployeeNo");
        return View();
    } 

这在视图中:

<div class="editor-field">
            @Html.DropDownList("User_ID", String.Empty)
            @Html.ValidationMessageFor(model => model.User_ID)
 </div>
于 2013-01-17T16:25:03.420 回答