0

モデルからの値を現在選択されている項目として表示する Html.DropDownList のオーバーロードはありますか? 私の見解では、 as using ステートメントを使用してモデルを挿入します

 @using SchoolIn.Models

次に、次のようにモデルにアクセスします。

        if (Model.Enrollments != null)
        {   
            @Html.DropDownList("searchString", Model.Enrollments.FirstOrDefault().weekDays.Select(s => new SelectListItem { Text = s.ToString(), Value = s.ToString() }))   
        }

私のモデルのコードは次のとおりです。

 public virtual string classDays { get; set; }
 public string[] weekDays = new string[6]          { "Day", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };
 public string[] WeekDays
 {
 get { return weekDays; }

ビューが読み込まれると、そこから選択できるドロップダウン リストが表示されます。日を選択して選択内容を保存しますが、再度読み込まれると、以前に選択した項目をリストで選択したデフォルトにします。これどうやってするの?助けていただければ幸いです、ありがとう。

4

3 に答える 3

0

この拡張方法を試してください:

public static IEnumerable<SelectListItem> SetSelected(this IEnumerable<SelectListItem> selectList, object selectedValue)
{
    selectList = selectList ?? new List<SelectListItem>();
    if (selectedValue == null)
        return selectList;
    var vlaue = selectedValue.ToString();
    return selectList.BuildList(m => m.Text, m => m.Value, null, m => String.Equals(m.Value, vlaue, StringComparison.CurrentCultureIgnoreCase));
}

次に、次のようにビューで呼び出すことができます。

@Html.DropDownListFor(model => model.CategoryId, ((IEnumerable<SelectListItem>)ViewData["Categories"]).SetSelected(model.CategoryId))
于 2012-09-27T06:48:11.907 に答える
0

DropDownList ではなく、DropDownListFor を使用する必要がある場合があります。MSDNのコンストラクター定義を次に示します。さらに 5 つのオーバーロードがあります。

public static MvcHtmlString DropDownListFor<TModel, TProperty>(
    this HtmlHelper<TModel> htmlHelper,
    Expression<Func<TModel, TProperty>> expression,
    IEnumerable<SelectListItem> selectList
)
于 2012-09-27T05:00:02.073 に答える
0

Selected適切なアイテムに設定できるはずです:

@{
    var Items = Model.Enrollments.FirstOrDefault().weekDays.Select(s => 
        new SelectListItem { Text = s.ToString(), Value = s.ToString() 
            Selected = s.ToString().Equals(PreviouslySelectedValue)
        } 
    );
}
@Html.DropDownList("searchString", Items)   

DropDownListForを使用して、選択した項目をプロパティの値に設定することもできます。

@Html.DropDownListFor(model => PreviouslySelectedValue, Items)
于 2012-09-27T05:03:54.757 に答える