IEnumerable<Product> Get();
我获取物品并创建此物品的集合
public class Product
{
public int? ProductId { get; set; }
public string ProductName { get; set; }
}
Name = new SelectList(Get(), "ProductId", "ProductName", model.Id)
@Html.DropDownListFor(m => m.Id, Model.Name)
在模型中
public int Id { get; set; }
public SelectList Name { get; set; }
始终在页面上选择的项目是第一项
如何按型号设置所选项目.Id?
答案 0 :(得分:2)
正确的方法是:
@Model.Name = new SelectList(Get(), "ProductId", "ProductName", model.Id)
@Html.DropDownListFor(m => m.Id, Model.Name)
答案 1 :(得分:0)
Id = smth logic,
Name = new SelectList(Get(), "ProductId", "ProductName")
需要初始化ID。我没有这样做
答案 2 :(得分:0)
要预先选择下拉列表中的项目,可以将值设置为要传递给Html.DropdownListFor
辅助方法的第一个参数。
public class CreateOrderVM
{
public SelectList Products{ set; get; }
public int? SelectedProduct { set; get; }
}
在您的GET操作方法
中public ActionResult Order()
{
var vm = new CreateOrderVM();
var productList= Get();
vm.Products =new SelectList(productList,"ProductId","ProductName");
vm.SelectedProduct = 2 ; // Replace 2 with the ProductId
// of the Product record you want to be selected.
}
你的剃刀观点
@model CreateOrderVM
@Html.DropDownListFor(s => s.SelectedProduct , Model.Products, "Select")
另外,作为附注,我不确定为什么你有ProductId
属性作为nullable int。通常,所有实体记录都具有有效的ID。