我正在努力建立'我在VS2010中的MVC3 Web应用程序然而不断出现以下错误:
错误2类型' System.Web.Mvc.ModelClientValidationRule'存在于' c:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll'和&#c; \ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET网页\ v2.0 \ Assemblies \ System.Web.WebPages.dll' C:\ Users \ brownp \ Documents \ Visual Studio 2010 \ Projects \ Cab \ Cab \ Models \ AccountModels.cs 223 28 Cab
此外,每次打开解决方案时,它都会提示我:
我通过Web Platform Installer安装并成功安装,但每次打开解决方案时都会重新显示该消息。
有人可以提供任何指导吗?
谢谢保罗
答案 0 :(得分:44)
今天安装MVC4测试版后,我的一些MVC 3项目无法编译。 (ModelClientValidationRule冲突)修复程序是:
编辑:
ProjectName.csproj
更改
<Reference Include="System.Web.WebPages"/>
要
<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
答案 1 :(得分:13)
好的尝试这个解决方案......
在根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>
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" />
用以下内容替换它们:
<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 "/>
4.保存更改,关闭正在编辑的项目(.csproj)文件,然后右键单击该项目并选择“重新加载”。
参考:http://forums.asp.net/t/1723108.aspx/1
还可以尝试:http://www.asp.net/learn/whitepapers/mvc4-release-notes#_Toc303253815
答案 2 :(得分:10)
从解决方案参考中删除System.Web.WebPages
。这就是全部。
答案 3 :(得分:3)
避免这种冲突的最佳方法是 -
System.Web.WebPages
现在运行您的应用程序并享受!
答案 4 :(得分:0)
此问题与您在VS2010中描述的相同,在VS2015中使用较新版本的MVC(V5)发生。
以下是我能够解决的问题:
将NUGET包更新为最新版本。
在项目中,删除Microsoft.AspNet.WebPages的引用。然后,使用最新的包重新添加引用(使用&#34;浏览...&#34;):
C:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET网页\ v2.0 \ Packages \ Microsoft.AspNet.WebPages.2.0.30506.0 \ lib \ net40
确保所有项目都引用相同的程序集,如果没有,请按上述说明进行修复。然后,重新构建解决方案。在我的情况下,它修复了错误。
检查Web.config
文件,并修复以下设置:
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="true" />
...
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>