2010-02-18 128 views
6

我一直在使用MVC 2,似乎在某个时间点ModelBindingContext.ValueProvider类已被删除,并用IValueProvider替换。由于这个即时通讯在迭代ValueProvider.Keys时遇到了问题。下面是一个例子,我从代码收到消息完成IValueProvider 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) 
    { 

    } 
} 

我得到的消息是System.Web.MVC.IValueProvider不包含键的定义。 有人能告诉我如何解决这个问题。

回答

2

天哪,那段代码看起来很熟悉!

您无法从IValueProvider获取关键值列表。你必须去的来源,例如:

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

0123n有趣的是,你应该回应!...但你的完美的人。 N +我试图创建一个自定义模型绑定器来抓取“重要”的值,但触发一个例程来对这些值应用一些特殊的编码。这是做这件事的好方法吗? – 2010-02-18 17:10:32