Asp.net mvc 4 使用viewmodel asp.net mvc进行下拉填充
我是MVC的新手。所以当看到代码理解时,就会出现一些混乱。这里我给出一个代码。所以请先看代码Asp.net mvc 4 使用viewmodel asp.net mvc进行下拉填充,asp.net-mvc-4,Asp.net Mvc 4,我是MVC的新手。所以当看到代码理解时,就会出现一些混乱。这里我给出一个代码。所以请先看代码 public class ProductViewModel { public int ID { set;get;} public string Name { set;get;} } public class OrderViewModel { private List<ProductViewModel> _products; public int Or
public class ProductViewModel
{
public int ID { set;get;}
public string Name { set;get;}
}
public class OrderViewModel
{
private List<ProductViewModel> _products;
public int OrderNumber { set; get; }
public List<ProductViewModel> Products
{
get
{
if (_products == null)
{
_products = new List<ProductViewModel>();
_products.Add(new ProductViewModel { ID = 1, Name = "Ketchup" });
_products.Add(new ProductViewModel { ID = 1, Name = "Mustard" });
_products.Add(new ProductViewModel { ID = 1, Name = "Relish" });
_products.Add(new ProductViewModel { ID = 1, Name = "Mayo" });
}
return _products;
}
}
public int SelectedProductId { set;get;}
}
public ActionResult Order()
{
OrderViewModel orderVM = new OrderViewModel();
return View(orderVM);
}
@model ORderViewModel
@using (Html.BeginForm())
{
<p>
@Html.DropDownListFor(x => x.SelectedProductId , new SelectList(Model.Products, "Value", "Text"), "-- Select Product--")
</p>
}
我的问题是,我是否可以将此代码public int SelectedProductId{set;get;}放在ProductViewModel而不是OrderViewModel中
如果可能,那么在代码和视图html中更改什么?否,SelectedProductId需要在OrderViewModel中,这样您就可以为订单选择产品。@StephenMuecke感谢和new SelectListModel。产品、值、文本需要是new SelectListModel。产品、ID、,名称,因为ProductViewModel只包含属性ID和名称,而不包含值和文本。我没有检查我发布的代码。我发布的代码是否有效或需要更改才能正常工作。如果需要更改,请告诉我需要更改哪一行。thanks@StephenMuecke我看过你的dotnetfiddle代码。要在代码中添加什么以显示输入的订单号以及所选的产品名称和id?您是否介意在表单提交后添加一些以显示输入的订单号、所选产品名称和id。