2010-02-18 81 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