Visual Studio 2017中System.Web.Mvc命名空间不存在问题求助
解决System.Web.Mvc命名空间不存在的问题
我来帮你搞定这个头疼的问题!你遇到的类型或命名空间名称“Mvc”在命名空间“System.Web”中不存在错误,本质是项目对ASP.NET MVC核心程序集的引用出了问题,结合你尝试过的操作,我们可以从以下几个方向排查修复:
一、先确认项目类型和框架版本
首先要明确两个关键点:
- 如果你的项目是ASP.NET Core(不是传统的ASP.NET MVC),那
System.Web.Mvc本身就不存在,你需要改用Microsoft.AspNetCore.Mvc.Rendering命名空间来引用SelectListItem,同时安装Microsoft.AspNetCore.MvcNuGet包。 - 如果是传统ASP.NET MVC项目,右键项目→属性→应用程序,确认目标框架是.NET Framework 4.5及以上(MVC 5版本最低要求4.5),版本过低会导致包无法正常引用。
二、修复NuGet包引用混乱的问题
你提到重装Microsoft.AspNet.Mvc时因为EntityFramework报错,那我们拆分操作,避免牵连其他项目:
- 先清理NuGet缓存:
打开NuGet包管理器控制台,执行:Clear-PackageCache - 单独针对你的Web项目
MySite重装MVC包:
这样就不会触发DataAccess项目的EntityFramework依赖问题了。Update-Package -reinstall Microsoft.AspNet.Mvc -ProjectName MySite - 如果还是不行,手动删除解决方案根目录下的
packages文件夹,重新打开Visual Studio,右键解决方案→管理NuGet程序包,先卸载Microsoft.AspNet.Mvc,再重新安装和你的.NET框架匹配的版本(比如.NET 4.5对应MVC 5.2.7版本)。
三、手动添加程序集引用
如果NuGet安装后项目依然识别不到System.Web.Mvc,可以手动添加dll:
- 找到MVC程序集的安装目录:
一般在C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 5\Assemblies(对应MVC 5),或者ASP.NET MVC 4文件夹(对应MVC 4)。 - 右键你的项目→添加→引用→浏览,选中该目录下的
System.Web.Mvc.dll,点击确定添加。
四、解决EntityFramework的依赖问题(可选)
如果后续需要统一更新包,先处理DataAccess项目的EntityFramework缺失问题:
- 右键DataAccess项目→管理NuGet程序包,搜索
EntityFramework,安装6.1.0版本。 - 之后再执行重装MVC包的命令就不会报错了。
完成以上操作后,回到代码里,using System.Web.Mvc;应该就能正常识别,SelectListItem的引用也不会再出问题啦。
内容的提问来源于stack exchange,提问作者Be Kind To New Users
相关产品推荐
相关产品推荐

