我之前使用的是
How can a formcollection be enumerated in ASP.NET MVC?的实现,但现在我在VS2010和MVC2上抱怨:
Error 1 Cannot implicitly convert type 'System.Web.Mvc.IValueProvider' to 'System.Collections.Generic.IDictionary'. An explicit conversion exists (are you missing a cast?) C:\~\ProjectMVC\Controllers\TheController.cs line ProjectMVC
代码是……
IDictionary<string,ValueProviderResult> tmpCollection = collection.ToValueProvider(); for (int j = 1; j <= noprops; j++) { string shopNmTmp = (from t in tmpCollection where t.Key.StartsWith(j + ".discount.sname." + j) select t.Value.AttemptedValue).First(); string shopCdTmp = (from t in tmpCollection where t.Key.StartsWith(j + ".discount.sref." + j) select t.Value.AttemptedValue).First(); ...
当我不看时,有什么改变;这编译,工作和运行,在MVC1中没有问题;但不会在2中编译.
谢谢
更新
我通过使用以下技术来解决这个问题:
Dictionary<string,string> tmpCollection = collection.AllKeys.ToDictionary(k => k,v => collection[v]);
代替.
但是我仍然对它为什么在版本之间发生变化感兴趣.