Я ранее использовал, Как formcollection может быть перечислен в 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 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.
Спасибо
Я techically просто зафиксировал это при помощи:
Dictionary tmpCollection = collection.AllKeys.ToDictionary(k => k, v => collection[v]);
вместо этого.
Но я все еще интересовался бы тем, почему это изменилось между версиями.
Технически я просто исправил это, используя:
Dictionary<string, string> tmpCollection = collection.
AllKeys.ToDictionary(k => k, v => collection[v]);
Linebreak добавлен после сбора. для форматирования