两个dll中都存在"ModelClientValidationRule"类型

Max*_*mov 15 asp.net asp.net-mvc visual-studio-2010 asp.net-mvc-3 visual-studio-2012

我下载了用asp.net mvc3 visual studio 2010编写示例源代码

visual studio 2012打开解决方案文件.它将源代码转换为2012并打开解决方案.

当我构建解决方案得到错误:

错误1'c:\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll'和'c'中存在类型'System.Web.Mvc.ModelClientValidationRule' :\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.WebPages.dll'C:\ studyCode\MVCDemo-Part12\MVCDemo-Part12\MVCDemo\Attributes \验证\ EqualAttribute.cs 54 28 MVCDemo

Max*_*mov 41

只需从解决方案引用中删除System.Web.WebPages即可

  • 或者,如果您碰巧在System.Web.WebPages程序集中使用某些内容(例如TagBuilder),则将引用更改为v1而不是v2,因为它是包含冲突的ModelClientValidationRule类的v2. (4认同)
  • +1表示简单.通常,如果你有这两个参考,一个是错误的.如果你在MVC工作,System.Web.WebPages是多余的. (2认同)

bot*_*bot 5

这个答案也可以解决您的问题:

  1. 在根Web.config文件中,添加一个包含密钥webPages:Version和值1.0.0.0的新条目.

    <appSettings>
    <add key="webpages:Version" value="1.0.0.0"/>
    <add key="webpages:Version" value="1.0.0.0"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    </appSettings>
    
    Run Code Online (Sandbox Code Playgroud)

2.In Solution Explorer, right-click the project name and then select Unload Project. Then right-click the name again and select Edit ProjectName.csproj.

3.Locate the following assembly references:

    <Reference Include="System.Web.WebPages"/>
    <Reference Include="System.Web.Helpers" />
Run Code Online (Sandbox Code Playgroud)

用以下内容替换它们:

<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
<Reference Include="System.Web.Helpers, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
Run Code Online (Sandbox Code Playgroud)

4.保存更改,关闭正在编辑的项目(.csproj)文件,然后右键单击该项目并选择"重新加载".

参考:http://forums.asp.net/t/1723108.aspx/1

也尝试:http ://www.asp.net/learn/whitepapers/mvc4-release-notes#_Toc303253815

或者您也可以尝试这个

编辑:

ProjectName.csproj
Run Code Online (Sandbox Code Playgroud)

更改

<Reference Include="System.Web.WebPages"/> 
Run Code Online (Sandbox Code Playgroud)

<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/><br/><br/>
Run Code Online (Sandbox Code Playgroud)

注意:这个问题的可能重复