System.Collections.Generic.List<string>
にはAnyの定義が含まれていないと言って、RuntimeBinderException
と表示されています。 ValidationFailuresという動的ViewBagオブジェクト内にIEnumerable<string>
が設定されています。ただし、この例外は、カミソリのページ通話中にスローされます。レイザーページレンダリング中のLinqエラー - すべてのための定義がありません
@if(ViewBag.ValidationFailures.Any())
{ ... }
IEnumerable
は下図のようにビューを返す前に、私のコントローラに追加されます。
ViewBag.ValidationFailures = TempData.ContainsKey("ValidationFailures")
? (IEnumerable<string>)TempData["ValidationFailures"]
: Enumerable.Empty<string>();
通常、私はこれをアップチョークだろうLINQのへの参照を逃したが、LINQのは、Viewフォルダ内のweb.configファイル内に含まれている:私は@using System.Linq
への追加しようとしたそれの地獄のために
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.2.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="System.Linq" />
<add namespace="myProject" />
</namespaces>
</pages>
</system.web.webPages.razor>
ビューの上部にも表示されますが、これは動作を変更しませんでした。 Linqクエリは他のビューで正常に動作していますが、この単一のビューで問題が発生しています。
他に、この例外がスローされる可能性がありますか?
@JNYRangerリンクされたqは詳しい説明をしています。ショート・エクステンション・メソッドはオブジェクトのメソッドではないため、実行時型だけではそれらを見つけるには不十分です。 –
うん、私は読んで、私のコメントを削除し始めた。情報をありがとう! – JNYRanger