0

ドロップダウンリストの初期値が表示されないのはなぜですか?私が使用しているもの:

@Html.DropDownList("DropDownValues", new SelectList(ViewBag.sellectedSubjectsId, "Initial Value")); 

私は何が間違っているのですか?

4

1 に答える 1

0

アクションメソッドとビューの間でデータを転送するために、のViewBagような動的なものを使用しないようにしてください。ViewData強く型付けされたビューモデルを使用します。

ビューが、ユーザーがサブジェクトのリストから1つのサブジェクトを選択する必要がある新しいコースを作成することであると想定し、次のようなビューモデルを作成します。

public class CourseVM
{
  public List<SelectListItem> Subjects { set;get;}
  public int SelectedSubject { set;get;}
  public CourseVM()
  {
    Subjects=new List<SelectListItem>();
  }
}

そして、GETアクションで、ビューモデルのオブジェクトを作成し、Subjectsプロパティに入力します。

public ActionResult Create()
{
  var vm=new CourseVM();
  //the below is for demo. replace with database data
  vm.Subjects.Add(new SelectListItem{ Value="1", Text="Maths"});
  vm.Subjects.Add(new SelectListItem{ Value="2", Text="English"});
  return View(vm);
}

これで、ビューモデルに強く型付けされたビューが表示されます。

@model CourseVM
@using (Html.BeginForm())
{
 //Other form elements as well
 @Html.DropdownListFor(x=>x.SelectedSubject,
                     new SelectList(Subjects,"Value","Text"),"Select one")
  <input type="submit" />
}
于 2012-12-17T02:49:00.837 に答える