2010-02-18 3 views
6

MVC 2를 사용하여 작업 한 적이 있는데 어느 시점에서 ModelBindingContext.ValueProvider 클래스가 제거되어 IValueProvider로 바뀌 었습니다. 이 메신저 때문에 ValueProvider.Keys를 통해 반복하는 데 문제가 있습니다. 다음은 그 예이며, 나는 코드로부터받은 메시지는 내가 할 메시지는 System.Web.MVC.IValueProvider이 키에 대한 정의를 포함하지 않는 것입니다MVC 2 RC2의 IValueProvider

private void foo(ModelBindingContext myMBC) 
{ 
    var myImportantKeys = myMBC.ValueProvider.Keys.where(keyValue => keyValue.StartsWith("important", StringComparison.InvariantCulture); 
    foreach(var importantKey in myImportantKeys) 
    { 

    } 
} 

완료합니다. 누군가이 문제를 해결하는 방법을 가르쳐 주시겠습니까?

답변

2

어머, 그 코드가 친숙 해 보인다!

IValueProvider에서 키 값 목록을 가져올 수 없습니다. 출처로 가야합니다 (예 :

var keys = controllerContext.HttpContext.Request.QueryString.AllKeys.Where(... 
+0

웃긴 사람은 답해야합니다! ...하지만 완벽한 사람입니다. 엔? "중요한"값을 가져 오는 루틴을 트리거하는 값에 특수 인코딩을 적용하는 사용자 지정 모델 바인더를 만드는 중입니다. 이것이 좋은 방법일까요? –