2015-11-28 179 views
1
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; } 

始終在選定的頁面項目是第一項

如何我可以按照型號設置選定的項目。

+0

我不確定你的問題是什麼?問題是什麼? –

+0

@KarlGjertsen編輯 – i545219

+0

您是否在控制器上放置了斷點以查看模型的值? –

回答

2

正確的方法是:

@Model.Name = new SelectList(Get(), "ProductId", "ProductName", model.Id) 
@Html.DropDownListFor(m => m.Id, Model.Name) 
+0

我編輯問題。 我通過模型調用Name – i545219

0
Id = smth logic, 
Name = new SelectList(Get(), "ProductId", "ProductName") 

需要初始化標識。我沒有這樣做

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. 

} 

而且你的Razor視圖

@model CreateOrderVM 
@Html.DropDownListFor(s => s.SelectedProduct , Model.Products, "Select") 

此外,作爲一個側面說明,我不知道爲什麼你ProductId財產可空INT。通常所有的實體記錄都會有一個有效的ID。