2017-11-21 2 views
0

내보기에 채울 목록이 있습니다.편집 메뉴의 모델에서 드롭 다운 목록 값 설정

<div class="form-group"> 
      @Html.LabelFor(model => model.AmPm, htmlAttributes: new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.DropDownListFor(model => model.AmPm, new List<SelectListItem> 
       {      
        new SelectListItem{Text="AM", Value="1"}, 
        new SelectListItem{Text="PM", Value="2"}, 
        new SelectListItem{[email protected]"N\A", Value="3", Selected=true}, 
       }, new { id = "amPmDropDownSelect", @class = "form-control" }) 
       @Html.ValidationMessageFor(model => model.AmPm, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

값이있는 레코드를 편집 할 때 드롭 다운 목록을 모델에 저장된 값으로 선택하고 싶습니다. jquery없이이 작업을 수행 할 수 있습니까?

빈 모델 위에 드롭 다운 목록을로드 할 때 "Text = @"N \ A ", Value ="3 "을 선택한 값으로 사용하고 Selected = true를 추가하면 작동한다고 생각했지만 항상 기본값으로 설정됩니다. 목록에서 첫 번째 표시?

답변

1

당신은 당신이 당신의 GET 동작에서, 선택하려는 옵션의 값에보기 모델의 AmPm 속성을 설정할 수 있습니다. 이제

public ActionResult Edit(int id) 
{ 
    var vm = new YourViewModel(); 
    vm.AmPm="3"; 
    return View(vm); 
} 

DropDownListFor 도우미 메서드를 값이 "3"인 옵션 항목을 선택합니다.

AmPm 유형이 int 인 경우 int 값을 설정할 수 있습니다.

vm.AmPm=3; 

당신은 지금 당신이 추가하는 세 번째 SelectListItem 개체에서 Selected=true를 제거 할 수 있습니다 개체의 값을 읽고 예 또한

public ActionResult Edit(int id) 
{  
    var e=db.Tasks.Find(id); 
    var vm = new YourViewModel() { Title = e.Title }; 
    vm.AmPm = e.AmPm; // This line sets the selected value 
    return View(vm); 
} 

를 들어, 3 대신 하드 코딩을 설정할 수 있습니다 옵션을 빌드하는 데 사용되는 목록

+0

덕분에 나는 운이없이 모델을 전달하려고 시도했지만 지금은 작동하므로 오류가 발생했습니다! – JQuery