2010-02-18 20 views
6

Pracowałem z MVC 2 i wygląda na to, że w pewnym momencie klasa ModelBindingContext.ValueProvider została usunięta i zastąpiona przez IValueProvider. Z tego powodu mam problemy z iterowaniem przez ValueProvider.Keys. Oto przykład, a komunikat otrzymuję od kodeksu zakończyćIValueProvider w 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) 
    { 

    } 
} 

Komunikat pojawia się System.Web.MVC.IValueProvider nie zawiera definicji Keys. Czy ktoś może mnie oświecić, jak to obejść.

Odpowiedz

2

Rany, ten kod wygląda znajomo!

Nie można uzyskać listy wartości klucza od IValueProvider. Musisz udać się do źródła, na przykład:

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

Zabawne, że powinieneś odpowiedzieć! ... ale twoja idealna osoba. n? Próbuję utworzyć niestandardowy segregator modelu, który przechwytuje "ważne" wartości, ale uruchamia procedurę, aby zastosować specjalne kodowanie do wartości. Czy byłby to dobry sposób na zrobienie tego? –

Powiązane problemy