MVC 2与VS 2010视图构建错误:功能'匿名类型'不能使用,因为它不是ISO-2 C#语言规范的一部分

Joh*_*ell 3 c# visual-studio-2010 visual-studio asp.net-mvc-2

我有一个共享项目,我存储了所有自定义的EditTemplates和DisplayTemplates.这是一个常规的C#类库项目,其视图都标记为嵌入式资源.该项目的目标框架是".Net Framework 4".

在/ Views /文件夹中我已经包含了这个web.config文件,因此在使用.aspx和.ascx文件时我获得了MVC 2 intellisense:

<?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>
Run Code Online (Sandbox Code Playgroud)

通常我对这个设置没有问题,但是一旦我在编译视图时遇到错误:

错误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" })%>
Run Code Online (Sandbox Code Playgroud)

大多数情况下,这个错误就消失了.我已经学会了处理它,但现在它引起了一些问题.任何导致"错误3功能'匿名类型'的原因都无法使用,因为它不是ISO-2 C#语言规范的一部分"错误以及如何解决这个问题?

小智 6

我已经面临这个问题了,并且已经花了很多时间,同时发现其中包含空配置部分的App.Config文件是邪恶的根源.只需删除App.Config,一切都会正常工作.