2010-02-18 3 views
6

Я работал с MVC 2, и кажется, что в какой-то момент класс ModelBindingContext.ValueProvider был удален и заменен на IValueProvider. Из-за этого у меня возникают проблемы с итерацией через ValueProvider.Keys. Вот пример, и сообщение я получаю из кода завершенияIValueProvider в MVC 2 RC 2

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

    } 
} 

сообщение я получаю System.Web.MVC.IValueProvider не содержит определения для ключей. Не мог бы кто-нибудь просветить меня о том, как обойти это.

ответ

2

Гоша, этот код выглядит знакомым!

Вы не можете получить список значений ключа от IValueProvider. Вам нужно перейти к источнику, например:

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

смешно, что вы должны ответить! ... но ваш идеальный человек. п? Im пытается создать настраиваемое связующее устройство, которое захватывает «важные» значения, но запускает подпрограмму для применения некоторой специальной кодировки к значениям. Будет ли это хорошим способом сделать это? –

Смежные вопросы