3

ドロップダウン リストで選択した値を設定するにはどうすればよいですか? これが私がこれまでに持っているものです:

@model Web.Models.PostGraduateModels.PlannedSpecialty

@Html.DropDownList("PlannedSpecialtyID")

//controller
        [HttpGet]
        public PartialViewResult PlannedSpecialty()
        {

            // Get Planned Specialty ID
            var pgtservice = new PgtService();
            PostGraduateModels.PlannedSpecialty plannedSpecialty = pgtservice.GetPlannedSpecialtyId();


           // Get Data for Planned Specialty DropDown List from SpecialtyLookup
            var pgtServ = new PgtService();
            var items = pgtServ.GetPlannedSpecialtyDropDownItems();
            ViewBag.PlannedSpecialtyId = items;

            return PartialView(plannedSpecialty);


        }

// service
        public IEnumerable<SelectListItem> GetPlannedSpecialtyDropDownItems ()
        {
            using (var db = Step3Provider.CreateInstance())
            {
                var specialtyList = db.GetPlannedSpecialtyDdlItems();

                return specialtyList;

            }

        }

// data access
        public IEnumerable<SelectListItem> GetPlannedSpecialtyDdlItems()
       {

            IEnumerable<Specialty> specialties = this._context.Specialties().GetAll();
            var selList = new List<SelectListItem>();

            foreach (var item in specialties)
            {
                var tempps = new SelectListItem()
                    {
                        Text = item.Description,
                        Value  = item.Id.ToString()
                    };
                selList.Add(tempps);
            }


            return selList;
       }
4

2 に答える 2

2

ViewBag/ViewData/ Weekly 型のコードは使用しないことをお勧めします。厳密に型指定されたコードを使用すると、読みやすくなります。マジック文字列/マジック変数は使用しないでください。ViewModel にコレクション プロパティを追加して SelectList アイテムを保持し、別のプロパティを選択したアイテムの値を保持します。

public class PlannedSpecialty
{
   public IEnumerable<SelectListItem> SpecialtyItems { set;get;}
   public int SelectedSpeciality { set;get;}

  //Other Properties
}

Getアクションで、いくつかのアイテムを選択済みとして設定したい場合は、

public PartialViewResult PlannedSpecialty()
{ 
    var pgtServ = new PgtService();
    var vm=new PlannedSpecialty();
    vm.SpecialtyItems = pgtServ.GetPlannedSpecialtyDropDownItems();    

   //just hard coding for demo. you may get the value from some source.  
    vm.SelectedSpeciality=25;//  here you are setting the selected value.
   return View(vm);
}

ビューで、Html.DropDownListForヘルパー メソッドを使用します。

@Html.DropDownListFor(x=>x.SelectedSpeciality,Model.SpecialtyItems,"select one ")
于 2012-08-01T19:03:09.853 に答える
0

SelectListItemクラスの選択されたプロパティを使用します。

selList.Selected = true;
于 2012-08-01T18:52:31.027 に答える