我一直在使用MVC 2,似乎在某些时候,ModelBindingContext.ValueProvider类已被删除并替换为IValueProvider。因为这样我在迭代ValueProvider.Keys时遇到了麻烦。这是一个示例,我从Code complete收到的消息
private void foo(ModelBindingContext myMBC)
{
var myImportantKeys = myMBC.ValueProvider.Keys.where(keyValue => keyValue.StartsWith("important", StringComparison.InvariantCulture);
foreach(var importantKey in myImportantKeys)
{
}
}
我收到的消息是System.Web.MVC.IValueProvider不包含Keys的定义。 有人可以告诉我如何解决这个问题。
答案 0 :(得分:2)
天哪,那段代码看起来很熟悉!
您无法从IValueProvider
获取键值列表。你必须去源头,例如:
var keys = controllerContext.HttpContext.Request.QueryString.AllKeys.Where(...