2010-07-29 3 views
2

Я только что присоединился к команде, которая разрабатывает приложение asp.net mvc 1. у меня только Visual Studio 2010 установлен, который поставляется с MVC 2.Помогите мигрировать asp.net mvc 1 в mvc 2

Я побежал мастер преобразования и теперь приложение не кажется, что для компиляции

Ошибки я получаю

«Невозможно применить индексирование с [] на выражение типа «System.Web.Mvc.IValueProvider»

я получаю эту ошибку 5 раз в разных местах приложения.

Линия

ModelState.SetModelValue(inputTagName, new ValueProviderResult(ValueProvider[inputTagName].AttemptedValue, file.FileName, System.Globalization.CultureInfo.CurrentCulture)); 

Честно говоря, я не имею ни малейшего понятия о том, что его делать, но мои ровесники (с использованием MVC 1) не имеют проблем при компиляции.

Пожалуйста, помогите.

ответ

2

Это одно из (незначительных) изменений между MVC 1 и MVC 2. ValueProvider полностью переделан для поддержки нескольких поставщиков стоимости и больше не имеет свойства индекса. Короткий ответ - изменить это, чтобы использовать GetValue(inputTagName). Более длинный (и лучший) ответ заключается в том, чтобы изменить код для использования models для ввода ваших действий и не вытащить данные из поставщика стоимости непосредственно в ваш код. Скорее, вы полагаетесь на привязку модели к доступу к поставщику значений и задаете свойства на своей модели.

0

Изменить ValueProvider[inputTagName].AttemptedValueValueProvider.GetValue(inputTagName).AttemptedValue.

Обратите внимание, что вся ваша команда должна развиваться против той же версии ASP.Net MVC; в противном случае; вы столкнетесь с множеством неприятностей.

+0

Спасибо, что исправил его, хотя я попытаюсь исправить его правильно, используя предложение tvanfosson – ignaciofuentes