我有一个共享项目,在这里存储我所有的自定义EditTemplates和DisplayTemplates。这是一个常规的C#类库项目,其视图都标记为嵌入式资源。该项目的目标框架是".Net框架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>通常,我对这个设置没有问题,但是当我编译我的视图时,有一次会出错:
不能使用
错误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" })%>大多数情况下,这个错误就会消失。我已经学会了处理它,但现在它引起了一些问题。任何导致"Error 3特性‘匿名类型’的原因都不能使用,因为它不是ISO-2 C#语言规范的一部分“错误,以及我如何修复这个错误?
发布于 2010-04-01 15:33:43
在某种程度上,您的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的。
发布于 2012-05-04 12:11:44
我曾经面对过这个问题,并且花了很多时间,同时我发现App.Config文件中有空的配置部分是邪恶的根源。只需删除App.Config即可,一切都将正常工作。
发布于 2012-11-25 10:33:52
对我来说,解决方案是改变项目类型。
{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}:ProjectTypeGuids
(这是一个MVC3项目)
https://stackoverflow.com/questions/2560773
复制相似问题