2010-02-18 19 views
6

Ich habe mit MVC 2 gearbeitet und es scheint, dass irgendwann die ModelBindingContext.ValueProvider Klasse entfernt und durch IValueProvider ersetzt wurde. Aus diesem Grund Probleme beim Iterieren durch die ValueProvider.Keys. Hier ist ein Beispiel, und die Botschaft, die ich von Code vervollständigenIValueProvider 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) 
    { 

    } 
} 

Die Botschaft, die ich erhalten, ist System.Web.MVC.IValueProvider keine Definition für Schlüssel enthält. Könnte mir jemand erklären, wie ich das umgehen kann.

Antwort

2

Mein Gott, dieser Code kommt mir bekannt vor!

Sie können keine Liste der Schlüsselwerte von IValueProvider erhalten. Sie müssen zur Quelle gehen, zum Beispiel:

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

lustig, dass Sie reagieren sollten! ... aber Ihre perfekte Person. n? Ich versuche, einen benutzerdefinierten Modellbinder zu erstellen, der die "wichtigen" Werte erfasst, aber eine Routine auslöst, um eine spezielle Codierung für die Werte anzuwenden. Wäre das ein guter Weg, das zu tun? –

Verwandte Themen