Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 使用viewmodel asp.net mvc进行下拉填充_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 使用viewmodel asp.net 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

我是MVC的新手。所以当看到代码理解时,就会出现一些混乱。这里我给出一个代码。所以请先看代码

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。