3

Visual Studio 2012 で大きな問題が発生しました。ASP.Net MVC4 プロジェクトを開始するたびに、次のエラーが発生します。

Cannot convert lambda expression to type 'System.Linq.Expressions.Expression<System.Func<Carrousel.Web.ViewModels.LoginViewModel,bool>>' because it is not a delegate type

One or more types required to compile a dynamic expression cannot be found. Are you missing a reference?    d:\Visual Studio\Projects\School\Carrousel v2\Carrousel.Presentation\Views\Account\Login.cshtml

The type arguments for method 'System.Web.Mvc.Html.InputExtensions.TextBoxFor<TModel,TProperty>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TProperty>>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

これは、cshtml ファイルに ViewBag や Html フォーム ヘルパーなどの動的な式がある場合に発生します。

しばらく探していましたが、見つけた唯一の理由は、Microsoft.CSharp や System.Core が参照されていない場合でした。ただし、プロジェクトでは両方を参照しています。

この問題は、Asp.Net Mvc 4 を使用している場合にのみ発生し、Mvc 3 を使用している場合はすべて正常に動作します。このエラーは、Windows 7 と Windows 8 Enterprise の両方のバージョンで発生しました。また、パッケージ マネージャーを使用して mvc4 をアンインストールして再インストールしようとしました。

4

1 に答える 1

0

次のアセンブリへの参照を削除して追加してみてください。

  Microsoft.Scripting.Core.dll  
  Microsoft.CSharp

  CopyToLocal = true
于 2013-11-13T15:18:23.737 に答える