2012-08-02 8 views
1

.NET 4.5에서 MVC4를 사용하여 내 자신의 사용자 지정 ModelBinder를 구현하려고하지만 이상한 오류가 발생합니다. 내 코드가 약해 보입니다. 이사용자 지정 IModelBinder의 NullReferenceException

TableViewModelModel 같은 : IModelBinder

public object BindModel(ControllerContext ctx, BindingContext btx) 
{ 
    IEnumerable<String> sSearch = ctx.HttpContext.Request.Params.Keys.OfType<String().Where(key => key.StartsWith("sSearch_")); 
    ... 
} 

NullReferenceException이 첫 번째 줄에 allready 발생하지만, 속성 중 어느 것도 (그들은 모두 인텔리 디버그에 표시) 실제로 null이 없습니다. 필사적으로 필자는 예외가 던져지는 곳을 더 잘보기 위해 속성 중 일부를 제거하기로 결정했으며 범인을 Params 속성으로 찾았습니다. 정말 이상한 점은 쿼리 문자열의 모든 키가 디버그 창에 나열되지만 예외가 발생한다는 것입니다. 이 한사람에게 정말 도움이 필요해!

감사합니다.

답변

1

Reflector를 사용하여 오류를 발견하고 스택 추적을 분석하십시오. HttpRequest.Params가 호출 스택을 따라 내 Principal 객체 (HttpContext.User)의 Identity 속성을 읽으려고했습니다. Identity 객체를 초기화하지 않는 IPrincipal의 사용자 정의 구현이 있습니다.

내 질문을 읽을 시간이 많은 분들께 감사드립니다.

관련 문제