MVC 2 с VS 2010 View Building Error: Невозможно использовать функцию «анонимные типы», поскольку она не является частью спецификации языка ISO-2 C # - PullRequest
3 голосов
/ 01 апреля 2010

У меня есть общий проект, в котором я храню все свои пользовательские EditTemplates и DisplayTemplates. Это обычный проект библиотеки классов C #, все представления которого помечены как встроенные ресурсы. Целевой фреймворк этого проекта - «.Net Framework 4».

Внутри папки / Views / я включил этот файл web.config, чтобы получить IntelliSense MVC 2 при работе с файлами .aspx и .ascx:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc,     Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0,     Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral,   PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />  
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode"    type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

Обычно у меня нет проблем с этой настройкой, но однажды и когда я получаю сообщение об ошибке при компиляции моих представлений:

Ошибка 3 Функция «анонимные типы» не может быть использован, потому что он не является частью языка ISO-2 C # спецификация

для шаблона, который выглядит следующим образом:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Import Namespace="System.Web.Mvc.Html" %>
<%
    string displayText = string.Empty;

    if (Model != null)
    {
        if (DateTime.Parse(Model.ToString()) != DateTime.MinValue)
            displayText = DateTime.Parse(Model.ToString()).ToShortDateString();
    }
%>

<%= Html.TextBox("", displayText, new { @class = "date-box" })%>

Большую часть времени эта ошибка просто исчезает. Я научился справляться с этим, но сейчас это вызывает некоторые проблемы. Любая идея о том, что является причиной ошибки «Функция 3« анонимные типы », не может быть использована, поскольку она не является частью ошибки спецификации языка C # ISO-2», и как я могу это исправить?

Ответы [ 4 ]

6 голосов
/ 04 мая 2012

Я столкнулся с этой проблемой и потратил много времени, пока выяснил, что файл App.Config с пустым разделом конфигурации в нем является корнем зла.Просто удалите App.Config , и все будет работать нормально.

4 голосов
/ 01 апреля 2010

Каким-то образом ваш опыт IDE приводит к тому, что компилятор 4.0 C # ограничивается функциями, разрешенными в версии 2.0 компилятора. Это можно сделать с помощью переключателя langversion. Например

csc / langversion: ISO-2 ...

Полная документация: http://msdn.microsoft.com/en-us/library/f4ckecs0.aspx

Я не знаю, как работает компиляция для Asp.Net MVC, но где-то в вашей системе проектов вы попросили ограничиться фреймворком 2.0. Моим первым предположением было бы заглянуть на страницу проекта и убедиться, что он не нацелен на 2.0.

2 голосов
/ 25 ноября 2012

Решением для меня было изменение типа проекта

  1. Выгрузить проект
  2. Редактировать проект
  3. Поменяйте GUID проекта на этот

    ProjectTypeGuids: {E53F8FEA-EAE0-44A6-8774-FFD645390401}; {349c5851-65df-11da-9384-00065b846f21}; {fae04ec0-301f-11d3-bf479b 0004c004cc04c 1014 *

(Это проект MVC3)

0 голосов
/ 11 июля 2014

Для меня это в конечном итоге было вызвано нехваткой места на диске, представляющим собой град необычных и необъяснимых случайных ошибок сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...