无法找到类型或命名空间名称“IClientValidatable” - 在.NET 4.7中

时间:2017-11-02 19:23:55

标签: asp.net-mvc system.web .net-4.7

我正在使用VS 2017构建一个ASP.NET MVC应用程序,面向.NET 4.7 ,我正在尝试在Web应用程序引用的业务库中构建我的模型。所以我试图将默认的MVC项目中的许多相同的类放到一个全新的类库中。

特别是,我收到以下错误:

  

Error

这个非常与此问题的前一次发布有所不同:

  1. The type or namespace name 'IClientValidatable' could not be found
  2. The type or namespace name 'IClientValidatable' could not be found (are you missing a using directive or an assembly reference?)
  3. 即,只需在System.Web.Mvc生活System.Web.Mvc的情况下加入使用声明,就可以解决它们。

    但我肯定已经完成了......这是类库的参考管理器,其中包含可用于.NET 4.7的引用

    IClientValidatable

    作为进一步的证据,这里有一个并列示例,我可以从IClientValidatable中提取某些类,但不是SELECT [Id], [Name] FROM [People] WHERE Name LIKE '%' + CHAR(39) + '%'

      

    Reference manager

    为了便于参考,这里是类库本身的配置

    Side by Side

    这个班级搬到哪儿了?是否可以使用.NET 4.7?

1 个答案:

答案 0 :(得分:0)

所以真正的问题似乎不是它去了哪里,而是为什么最新的框架针对这样一个旧版本。

尝试在针对.NET Framework 4.7时添加对System.Web.MVC的引用时,唯一可用的选项是MVC v2.0.0.0,它非常古老。播种新的MVC应用程序时,它将随附v5.2.3.0

这里是加载了两个库的 Assembly Explorer 。常见项目将在每个项目中突出显示,但IClientValidatable未添加到以后。

Assembly Explorer

这里是VS 2017 参考管理器,您可以根据当前框架添加参考,显示新.NET版本的旧MVC库。

Reference Manager

那么问题就变成......

如何添加框架列表中不可用的引用?

A :您添加任何其他引用的方式相同 - 您可以浏览到dll或从nuget中获取它。

DLL 如果您已经有了一个网络应用程序,那么您可以在现有的包目录中找到dll的好处:

\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll

如果您更喜欢 Nuget ,一些小烦恼是nuget包名称与他们安装的程序集完全同步,浏览或搜索哪些程序集并不容易附带哪些软件包,它们的库和框架经常与您可能不需要的其他东西捆绑在一起。所有这一切,你都在寻找名为:

的软件包

Microsoft.AspNet.Mvc on Nuget

Microsoft.AspNet.Mvc - Package

将安装以下库:

Microsoft.AspNet.Mvc - Libraries