2013-06-07 4 views
0

MVC 프레임 워크를 처음 접했을 때 뷰 파일 목록의 확인란 목록을 생성하는 데 몇 시간을 소비했습니다. 마지막으로, 나는 그것을 잘 알아낼 수 있었다. 여기 내 코드입니다 :MVC3을 사용하여 확인란을 선택하는 경우 검색하는 방법 면도기

@foreach (var item in Model.GetRoleNames) 
     { 
      @Html.CheckBox("chk_" + item.Value, new { value = item.Value })@item.Text<br /> 
     } 

, 나는 선택 중 어떤 감지 할 필요가 모든 ckeckboxes는 체크를 해제하는 경우, 다음 몇 가지 작업을 방지 할 수있다.

질문 : 질문 : 컨트롤러 동작 내에있을 때 검사 항목을 얻으려면 어떻게해야합니까?

+0

확인란이 'bool' 유형 속성 또는 필드로 백업되어 있습니까? – rae1

+0

첫 번째, 에디션을 보내 주셔서 감사합니다. 사실 'GetRoleNames'는 관련된 ViewModel 내의 'SelectList'를 반환하는 속성입니다. – Ali

+0

실제 체크 박스에 bool을 사용하려고합니다. bool 목록이나 다른 사용자 정의 객체를 컨트롤러에 다시 바인딩하는 방법을 검색하면 많은 정보가 있어야합니다. SelectList는 확인란이나 목록이 아닙니다. – merekel

답변

2

다른 말처럼 CheckBox의 두 번째 매개 변수로 부울 값을 사용하여 선택 상태를 나타내야합니다. 문자열 조작의 비트는 내가 설정 한

먼저 당신이 볼 수 있듯이 체크 박스 도우미

<div id='myCheckboxDiv'> 
@foreach (var item in Model.GetRoleNames) 
{ 
    @Html.CheckBox("chk_" + item.Value, false)@item.Text<br /> 
} 
</div> 

을 사용하는 방식을 변경할 수 있습니다 .. 당신이 선택 확인란의 ID를 얻을 수 있도록해야한다 false로 두 번째 매개 변수와는 당신이 얻을하려는 경우, 사업부

에 믹스를 감싸 그리고 '값'선택된 체크 박스와 관련된

var values = $(‘# myCheckboxDiv’).find('input:checkbox:checked').map(function() { 

    // get the name .. 
    var nameOfSelectedItem = this.attr('name'); 

    // skip the ‘chk_’ part and give me the rest 
    return nameOfSelectedItem.substr(4); 

}).get(); 

나는 항목을 가정합니다. 값은 숫자 여야합니다. 그렇지 않은 경우 C#을 사용하여 공백을 제거하십시오.

+0

도움이 될 것입니다 감사합니다! 완전한 응답을 주셔서 감사합니다. – Ali