2012-09-05 54 views
2

我正試圖從模型中的下拉列表中獲取所選項目。但我總是得到這個項目的零值。 我的模型是未將所選下拉列表項返回給控制器

public class Configuration 
{ 
    public Color BoderColor { get; set; } 
} 

public class Color 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
} 

而且我綁定下拉列表這樣

<td> 
@Html.DropDownListFor(m => m.BoderColor, new SelectList(ViewBag.Colors, "Id","Name")) 
</td> 

ViewBag.Colors的類型是IEnumerable<Color>

這是我的操作方法。

[HttpPost] 
    public ActionResult Create(Configuration configItem) 
    { 
     try 
     { 
      var color = configItem.BoderColor; 
      return RedirectToAction("List"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

當我提交我的視圖時,我期望所選顏色應該能夠通過模型對象中的'BoderColor'訪問。有人可以幫我解決這個問題嗎?

謝謝。

+0

可以顯示操作方法使用它呢? –

+0

添加了我的操作方法。雖然我已經取消了對BL的實際呼叫。 – Naresh

回答

1

在模型中加入一個int屬性爲代表的顏色選擇的ID:

public class Configuration 
{ 
    public Color BoderColor { get; set; } 
    public int BoderColorId { get; set; } 
} 

然後在助手

<td> 
@Html.DropDownListFor(m => m.BoderColorId, new SelectList(ViewBag.Colors, "Id","Name")) 
</td> 
+0

感謝您的回覆。我能夠訪問Id。但我試圖訪問選定的顏色項目,而不是選定的顏色ID。 – Naresh

+0

您必須選擇的屬性是簡單類型,它是下拉列表返回的值。在這種情況下,該值將是「Id」,並假設它是一個int,則可以將其映射到BoderColorId,而不是BoderColor。 –

+0

所以我們不能夠選擇顏色而不是顏色ID? – Naresh

相關問題