2010-04-19 6 views
5

나는 열거 형을 가지고 있습니다. 모델에서 가져온 가치에 따라 라디오 버튼을 선택해야합니다. 어떻게해야합니까?enum 값을 기준으로 라디오 버튼을 확인하는 방법

<%=Html.RadioButton("Role", Role.Viewer)%><%= .Role.Viewer%> 
     <%=Html.RadioButton("Role",.Role.Reporter)%><%= Role.Reporter%> 
     <%=Html.RadioButton("Role",Role.User)%><%= Role.User%> 

내 열거 형은 예를 들어 1에서 3까지의 숫자를 갖습니다. role.Viewer를 선택하면 enum 값이 1인지 어떻게 확인할 수 있습니까?

답변

14

당신은 아무 문제없이 int로 열거 값을 캐스팅 할 수 있습니다

<%=Html.RadioButton("Role", (int)Role.Viewer)%><%= (int)Role.Viewer%> 
<%=Html.RadioButton("Role", (int)Role.Reporter)%><%= (int)Role.Reporter%> 
<%=Html.RadioButton("Role", (int)Role.User)%><%= (int)Role.User%> 

곰을 염두에 열거 정의가 암시 적으로 0부터 시작하는 인덱스를 가지고있다. 당신이 더 많은 제어를 원하는 경우, 수동으로 열거 자신을 INT 값을 지정할 수 있습니다 : 귀하의 의견을 바탕으로

public enum Role { 
    Viewer = 1, 
    Reporter = 2, 
    User = 3 
} 

[업데이트]

, 난 당신이에 대한 데이터베이스 값을 바인딩 할 것을 얻을 방사성 물질. 다음 코드를 사용하여 해당 작업을 수행 할 수 있습니다

<%=Html.RadioButton("Role", (int)Role.Viewer, Model.Role == Role.Viewer)%><%= (int)Role.Viewer%> 
<%=Html.RadioButton("Role", (int)Role.Reporter, Model.Role == Role.Reporter)%><%= (int)Role.Reporter%> 
<%=Html.RadioButton("Role", (int)Role.User, Model.Role == Role.User)%><%= (int)Role.User%> 

이 코드는 데이터베이스 값이 Model.Role과 동기화되어 있다고 가정,하지만 당신은 물론 당신의 자신의 논리로 교체 할 수 있습니다. 라디오 버튼 열거 형을 쓰려면 more elegant ways이 있지만 라디오 옵션이 3 개인 경우이 솔루션을 고수하는 것이 안전합니다.

+0

그게 도움이, 어떻게 값을 반환에 따라 버튼을 확인합니까. 예를 들어, 1이 반환되었다고하자. Role.Viewer 라디오 버튼을 선택해야하며 나머지는 변경되지 않은 채로 남아 있습니까? – learning

+0

int 값을 다시 캐스팅하여 할 수 있습니다 :'var myRole = (Role) returnValue;'. – Prutswonder

+0

내 질문을 이해하지 못했다고 생각합니다. 내 데이터베이스에서 값을 검색하고 Role에서 선택한 Role이 3 번이라는 것을 알았습니다. Role.User에 대한 라디오 버튼을 선택해야합니다. 다른 번호가 반환되면로드 할 때 해당 버튼을 확인해야합니다. – learning

관련 문제