2010-02-18 10 views
6

He estado trabajando con MVC 2 y parece que en algún momento la clase ModelBindingContext.ValueProvider se ha eliminado y reemplazado con IValueProvider. Debido a esto, tengo problemas para iterar a través de ValueProvider.Keys. Este es un ejemplo y el mensaje que recibo de código completoIValueProvider en 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) 
    { 

    } 
} 

El mensaje que recibo es System.Web.MVC.IValueProvider no contiene una definición para llaves. ¿Podría alguien aclararme cómo solucionar esto?

Respuesta

2

Gosh, ese código parece familiar!

No se puede obtener una lista de valores clave de IValueProvider. Tienes que ir a la fuente, por ejemplo:

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

¡gracioso que deberías responder! ... pero eres la persona perfecta. ¿norte? Intento crear un encuadernador de modelo personalizado que capture los valores "importantes" pero desencadena una rutina para aplicar alguna codificación especial a los valores. ¿Esta sería una buena manera de hacerlo? –

Cuestiones relacionadas