2014-03-13 5 views
0

ASP.NET MVC에는 양식이 있습니다. 이 양식에서 사용자는 국가를 선택한 다음 ID가 보통 @using(Html.BeginForm)을 사용하여 서버에 다시 게시됩니다.녹아웃을 사용하여 드롭 다운 목록에서 선택한 값에 따라 레이블을 업데이트하십시오.

그러나 일부 UX에서는 Knockout을 사용합니다. 따라서 관찰 가능한 값 countryId에 드롭 다운 목록의 값을 지정해야합니다.

드롭 다운 목록에서 선택한 값에 따라 countryId를 표시하기 위해 마크 업에 내 레이블이 필요합니다.

마크 업 :

@Html.DropDownListFor(model => model.SelectedCountry, Model.Countries, new Dictionary<string, object> { { "class", "form-control sendaletter_countrylist" }, { "data-bind", "value:countryId" }}) 

<label data-bind="text: countryId"></label> 

뷰 모델 :

public class CreateSingleLetterModel 
    { 
     public CreateSingleLetterModel() 
     { 
      this.Countries = new List<SelectListItem>(); 
     } 

     public string SelectedCountry { get; set; } // expected to be the ID of the SelectListItem 
     public List<SelectListItem> Countries { get; set; } 
} 

그럼 내 질문은 :

어떻게 내 DropDownListFor을 수정 마십시오 countryId가 자동으로 설정되고, 그래서? :-)

고마워요! 나는 Knockout을 배우는 것을 정말로 즐긴다. 그러나 이것은 오래 걸렸다!

답변

1

모두 잘됐다. http://jsfiddle.net/tabalinas/xJ7mm/

: 이제

var viewModel = { 
    countryId: ko.observable(0) 
}; 

ko.applyBindings(viewModel); 

예를 ko.applyBindings을 (countryId이 ko.observable 것) 클라이언트 측 뷰 모델을 정의하고 호출 할 필요가

관련 문제