Я получаю RuntimeBinderException
, говоря, что System.Collections.Generic.List<string>
не содержит определения для Any. У меня есть IEnumerable<string>
, установленный в динамическом объекте ViewBag, называемом ValidationFailures. Однако, это исключение в Бритве странице призванию:Linq Failure во время Razor Page Rendering - нет определения для любого
@if(ViewBag.ValidationFailures.Any())
{ ... }
IEnumerable
добавляется в моем контроллере перед возвратом вида, как показано ниже:
ViewBag.ValidationFailures = TempData.ContainsKey("ValidationFailures")
? (IEnumerable<string>)TempData["ValidationFailures"]
: Enumerable.Empty<string>();
Обычно я мел это до отсутствует ссылка на Linq, но Linq включается в файл web.config внутри папки Вид:
<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>
для ада этого я попытался добавить @using System.Linq
к верх представления также, но это не изменило поведение. Запросы Linq отлично работают в других представлениях, но это единственное представление дает мне проблему.
Что еще могло вызвать это исключение?
@JNYRanger связанный q содержит подробные объяснения, методы коротких расширений - это метод * не * объекта - поэтому одного типа времени выполнения недостаточно, чтобы найти их. –
Да, я начал читать и удалял свой комментарий. Спасибо за информацию! – JNYRanger