ASP.NET MVC 1.0 - > 2.0 - S#ARPフレームワークからの切り替え
-
14-09-2020 - |
質問
私は2つのプロジェクトがWeb用とコントローラ用に1つのプロジェクトを持っている、古いASP.NET MVCソリューション(S#ARPフレームワーク)を持っています。 System.Web.MVCおよびMicrosoft.Web.MVCの最新バージョン(2.0)にDLLを変更しました。 web.configも調整しました:
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
.
これは私がしなければならないのはすべて(理論的に)ですか?
解決策は細かくなりますが、このエラーが発生します:
配列と互換性のない型として要素にアクセスしようとしました。 説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーとコード内で発生した場所については、スタックトレースを確認してください。
例外の詳細:System.ArrayTypeMismatchException:アレイと互換性のないタイプとして要素にアクセスしようとしました。
ソースエラー:
行32: 33行目:ViewEngines.Engines.Clear(); 行34:ViewEngines.Engines.Add(New AreaViewEngine()); 35行目: 36行目:ModelBinders.Binders.DefaultBinder= New SharpModelBinder();
これは、MVCスイッチとは関係なく、S#ARPフレームワークに関連していない可能性があります。何か案は?ありがとう。
ベスト願い、
クリスチャン
解決
この問題はS#ARPアーキテクチャに関するものです。ここでMVC2バージョンのS#ARPのMVC2バージョンを入手する必要があります。 http://github.com / CODAI /シャープアーキテクチャ/ダウンロード。リストの最初の項目は、VS2010テンプレートを含め、必要なものです。 (ASP.NET 2がASP.NET MVC 2)
にする必要がある説明の命名に注意してください。助けを願っています。
p.S。例外自体の原因について興味がある場合は、この簡単な記事をチェックしてください。 。 SharpModelBinder
(MVC1版)がMVC DefaultBinder
のMVC2実装と互換性がない(S#ARP 1およびMVC2ソースを見ずに)疑われると、SharpModelBinder
からeDefaultBinder
を継承するため、これはコンパイル時にキャッチされません。コンパイラはすべてがうまく考えています。それは実際の矛盾が検出されたのは実行時だけです。