2011-09-26 3 views
2

"사용 권한"모음이 있습니다. 각 권한에는 Id, Name 및 HasPermission의 세 가지 등록 정보가 있습니다. 예를 들어, 다음과 같은 목적을 고려 그래서 :CheckBox 용 바인딩 방법

public class AccessPerm 
{ 
    int PermId {get;set;} 
    string PermName {get;set} 
    bool HasPerm {get;set;} 
} 

public class UserProfile 
{ 
    Collection<AccessPerm> UserPerms {get;set;} 
} 

그래서 내가 하나가 사용자의 권한을 설정할 수 있도록 체크 박스를 만들 수 CheckBoxFor 도우미를 사용하고 싶습니다. 상자를 체크하면 HasPerm이 참이어야합니다. 선택을 취소하면 HasPerm이 false 여야합니다. 내가 겪고있는 문제는 PermId와 HasPerm 속성을 모두 체크 박스에 바인딩하는 방법이 없다는 것입니다. HasPerm 속성을 바인딩하는 데 다음 코드를 사용했지만 PermId를 모르기 때문에 유용하지 않습니다.

<% 
    for(int ix=0; ix< Model.UserProfile.Perms.Count; ix++) 
    { 
    Html.CheckBoxFor(model => model.UserProfile.Perms[ix].HasPerm); 
    } 
%> 

이 코드는 실제로 HasPerm을 바인딩하며 올바른 값입니다. 그러나 나는 이드가 없기 때문에 아무 것도 할 수 없다. 제발 조언. 당신이 ID를 포함하여 POST 컨트롤러 행동에 동일한 목록을 얻을이 선택되어 있는지 여부 것

<% for(int ix = 0; ix < Model.UserProfile.Perms.Count; ix++) { %> 
    <%= Html.HiddenFor(model => model.UserProfile.Perms[ix].PermId) %> 
    <%= Html.CheckBoxFor(model => model.UserProfile.Perms[ix].HasPerm) %> 
<% } %> 

이 방법 :

답변

4

당신은 그것을 숨겨진 필드를 포함 할 수있다.

+0

감사합니다. Darin! 좋아, 나는 그것을 깨닫지 못하는듯한 느낌이 든다. LOL ...하지만 첫 번째 MVC 사이트에서 일하기 때문에 가끔 혼란 스럽습니다. 다시 한 번 감사드립니다! – essedbl

0

SelectList 개체를 작성하고 확인란에 바인딩 할 수 있습니다.