2010-02-18 21 views
6

Ho lavorato con MVC 2 e sembra che a un certo punto la classe ModelBindingContext.ValueProvider sia stata rimossa e sostituita con IValueProvider. Per questo motivo ho problemi durante l'iterazione con ValueProvider.Keys. Ecco un esempio e il messaggio che ricevo da codice completoIValueProvider in 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) 
    { 

    } 
} 

Il messaggio che ottengo è System.Web.MVC.IValueProvider non contiene una definizione per le chiavi. Qualcuno potrebbe illuminarmi su come aggirare questo.

risposta

2

Accidenti, quel codice sembra familiare!

Non è possibile ottenere un elenco di valori chiave da IValueProvider. Devi andare alla fonte, ad esempio:

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

divertente che dovresti rispondere! ... ma sei la persona perfetta. n? Sto cercando di creare un raccoglitore di modelli personalizzato che acquisisce i valori "importanti" ma attiva una routine per applicare una codifica speciale ai valori. Questo sarebbe un buon modo per farlo? –

Problemi correlati