0

何が起こっているのかわかりませんが、選択リストで選択したアイテムを指定すると、マークアップで「選択済み」属性が割り当てられません。

私のモデルには、PlanningYears というプロパティがあります。これは、値として 2011、2012、2013、および 2014 を含むリストです。

現在の年を選択したいのですが、試してみました:

@Html.DropDownListFor(m => m.PlanningYears , new SelectList(Model.PlanningYears, DateTime.Now.Year), null, null)

しかし、役に立たない。

これは、http: //aspnet.codeplex.com/workitem/4932に関連しているように思えます。

誰でも回避策を考えることができますか?

ありがとう、

クリス

4

2 に答える 2

0
@{    
    var testModel = new int?[]
        {
            2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013, 2014
        };

    var current = DateTime.Now.Year;

    var list = testModel.Select(x => new SelectListItem
        {
            Text = x.ToString(),
            Value = x.ToString(),
            Selected = (x == current)
        });
}

@Html.DropDownList("testModel", list)

それは仕事です:)

于 2013-03-18T17:21:08.600 に答える
0

一般的に言えば、ドロップダウン リストのビュー モデルには 2 つのプロパティが必要です。表示する項目のリストと、選択した値をバインドする文字列または int です。

したがって、あなたの場合、モデルに次の 2 つのプロパティが必要です。

public int PlanningYear { get; set; }
public List<SelectListItem> PlanningYears { get; set; }

デフォルトの選択値を設定するための DropDownListFor ヘルパーのオーバーロードはないため、コントローラーでこれを行う必要があります。

viewModel.PlanningYear = DateTime.Now.Year;

次に、ビュー内のヘルパー

 @Html.DropDownListFor(x => x.PlanningYear, Model.PlanningYears)
于 2013-03-18T18:15:04.873 に答える