2016-11-14 36 views
0

我有一個靜態的SelectList 守則DropDownListFor如何將項目添加到具有Enumerable.Range列表項目的DropDownlistFor?

@Html.DropDownListFor(model => model.FinancialInfo.FinancialExpiryMonth, 
    new SelectList(Enumerable.Range(1, 12)), 
       (Model.FinancialInfo == null 
        || Model.FinancialInfo.ExpiryDate == null) 
        ? String.Empty 
        : null, 
    new { @class = "description-text" }) 

我需要的第一個項目是字Month我該怎麼做這個靜態DropDownListFor

This is example for what i need to do!

+0

更換第三個參數用'「月」' –

+0

@Stephen Muecke這將是一個月,但在編輯動作需要在S選擇的項目是一個值不是'「月」' –

+0

需要選擇SelectedItem –

回答

-1

終於解決了剛添加選定=真正當項目等在Model Value

    @Html.DropDownListFor(model => model.FinancialInfo.FinancialExpiryMonth, Enumerable.Range(1, 12).Select(x => new SelectListItem 
      { 
       Value = x.ToString(), 
       Text = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(x), 
      }), "Month", new { @class = "description-text" }) 
+0

這是錯誤的。它的綁定屬性的值決定了選擇的內容。如果屬性的值爲'FinancialExpiryMonth'爲'3',則將選擇''March''。如果「FinancialExpiryMonth」的值不在1和12之間,則將選擇第一個選項。綁定到屬性時,將忽略設置'SelectListItem'的'Selected'屬性。 –

+0

但他不能在選擇列表中添加其他值 –

+1

這與我的評論有什麼關係?刪除'Selected =(Model.FinancialInfo .....'位,你會看到完全相同的結果! –

0

我不知道你在你的DropDownListFor檢查,但我建議你做這種方式:

@Html.DropDownListFor(model => model.FinancialInfo.FinancialExpiryMonth, 
    //Genaration of month names 
Enumerable.Range(1, 12).Select(x=> new SelectListItem 
{ 
    Value = x.ToString(), 
    Text = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(x) 
}), 
"Month", //First Value if nothing selected 
new { @class = "description-text" }) 
+0

這裏是月份這裏是一個佔位符 –

+0

@AhmedHossamAlhansy您能詳細說明一下嗎? –

+0

我需要這個列表有一個叫'月'的字符串,列表中的所選項目是'Model.FinancialInfo.ExpiryDate.Value.Month.ToString()'的值' –