2010-02-11 5 views
1

내가 체크 박스의 배열을 가지고, 그들을 필터링하려고하지만 확인란이 선택되지 않은 경우, 그것이 System.ArgumentNullException가 발생합니다체크 박스 필터 문제 때 널 (null)

public ActionResult UserEdit(string[] UsergroupIDs) 
    { 

     IEnumerable<Usergroup> userUsergroups = 
      UsergroupIDs.Where(x => x != "false") 
         .Select(x => (Usergroup)_ug.GetUsergroups(int.Parse(x)).FirstOrDefault()); 
나는이 하나를 수정하는 방법

? paremeters null가 아닌 경우

/M

답변

2

처음에 빈 목록에 값을 설정 한 다음 쿼리의 결과로 변경. 또는 매개 변수가 null이 아니도록 기본 (false) 속성이있는 각 확인란의 숨김 필드를 포함하도록보기를 수정할 수 있습니다. 후자는 Checkbox 도우미 메서드가 사용하는 방법으로 문제를 해결할 수 있습니다. 더 좋은 점은 두 가지를 모두 해보십시오.

public ActionResult UserEdit(string[] UsergroupIDs) 
{ 

    IEnumerable<Usergroup> userUsergroups = new List<UserGroup>(); 

    if (UsergroupIDs != null) 
    { 
     userUsergroups = UsergroupIDs.Where(x => x != "false") 
            .Select(x => (Usergroup)_ug.GetUsergroups(int.Parse(x)).FirstOrDefault()); 
    } 

    ... 
} 
+0

사실,하지만 8 개의 체크 박스가 있으면 모두 실패합니다. :) –

+0

아니요.이 경우 빈 콜렉션이 생깁니다. null 값은 요청에 입력 값이 다시 전달되지 않는 경우입니다. 선택하지 않으면 확인란이 제출되지 않습니다. – tvanfosson