IValueProvider in MVC 2 RC 2

2020-03-18 22:50发布

问题:

I have been working with MVC 2 and it seems that at some point of time the ModelBindingContext.ValueProvider class has been removed and replace with IValueProvider. Because of this im having trouble iterating through the ValueProvider.Keys. Here is an example and the message I receive from Code complete

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

     }
}

The message I get is System.Web.MVC.IValueProvider does not contain a definition for Keys. Could someone enlighten me on how to get around this.

回答1:

Gosh, that code looks familiar!

You can't get a list of Key values from IValueProvider. You have to go to the source, e.g:

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