2010-07-29 47 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].AttemptedValue更改爲ValueProvider.GetValue(inputTagName).AttemptedValue

請注意,您的整個團隊應該針對相同版本的ASP.Net MVC進行開發;除此以外;你會遇到很多麻煩。

+0

謝謝,雖然我會嘗試使用tvanfosson的建議正確地修復它 – ignaciofuentes 2010-07-29 19:06:46