我正在关注视频教程,其中我需要使用ASP.NET Web
创建一个空MVC
应用程序,使用Visual Studio 2015
,是ASP.NET世界的新手,我是一步一步地进行。
我的项目创建得很好,下一步从现有的Controller
添加一个视图,我遇到了一个消息框错误说:
错误:
运行所选代码生成器时出错: '无效指针(来自HRESULT的异常:0x80004003(E_POINTER))'
我用Google搜索了问题,发现了类似的问题,但没有一个明确的解决方案,一些类似的问题由VisualStudio的前版本发布,但正如我所说的没有一个明确的解决方案。
为了澄清我的经历,这是我一步一步做的事情:
选择ASP.NET Web应用程序:
选中MVC的空模板:
从控制器尝试Add View
:
某些设置......
错误:
造成这个问题的原因是什么?它的解决方案是什么?
更新:
事实证明,即使尝试手动添加View也会出现同样的错误,添加视图是不可能的!
答案 0 :(得分:53)
尝试清除ComponentModelCache,缓存将在下次启动VS时重建。
14.0适用于visual studio 2015.这也适用于其他版本。
答案 1 :(得分:9)
我遇到了这个问题,并显示了另一条错误消息“ -1超出范围”。
对我唯一有效的方法是,通过右键单击项目并选择“删除”从解决方案中删除该项目。然后右键单击解决方案,添加现有项目,然后选择项目以将其重新加载到解决方案中。
重新加载项目后,我现在可以再次添加视图。
答案 2 :(得分:5)
按照以下步骤以不同于典型方式的方式添加视图:
如果您无法打开自己创建的视图,只需右键单击视图文件,选择使用打开,然后选择 HTML(网络表单)编辑器然后就可以了。
答案 3 :(得分:1)
让我们假设您在DLL中使用了datacontext,嗯,这是我的情况,我不知道为什么我有与您描述的相同的错误,我解决了它在后端项目中创建datacontextLocal。然后我将Dbset传递给正确的datacontext并删除本地(如果你愿意,你可以将它放在那里,将来可以提供帮助
如果您准备在本地datacontext中使用它,请创建一个新的,然后将Dbset传递给正确的
答案 4 :(得分:0)
C:\Users\{WindowsUser}\AppData\Local\Microsoft\VisualStudio\16.0_8183e7d1\ComponentModelCache
从此文件夹中删除VS 2019...。
答案 5 :(得分:0)
答案 6 :(得分:0)
检查您的数据库连接字符串,如果 appsettings.json 中有任何语法错误,它将返回此错误。
答案 7 :(得分:0)
就我而言,帮助了以下方面:
答案 8 :(得分:0)
我知道这是一个非常老的话题,但是在处理我的问题时遇到了它。我的原因是我重命名了我的Model类之一。即使该应用程序已构建且运行良好,当我尝试添加新控制器时,我也遇到了相同的错误。对我来说,我只是删除了已重命名的课程,将其添加回去,一切都很好。
答案 9 :(得分:0)
我正在使用Core 3应用,添加控制器时弹出此问题。我发现Microsoft.VisualStudio.Web.CodeGeneration.Design包已使用.net 4.x框架dll更新。将项目更新到Core 3.1可以解决此问题。
答案 10 :(得分:0)
删除解决方案目录中的.vs文件夹对我有用。
答案 11 :(得分:0)
右键单击解决方案下的项目,然后单击“卸载项目”,
您将看到该项目已卸载,因此现在右键单击它,然后按加载项目
然后尝试添加您的控制器
答案 12 :(得分:0)
从nuget软件包管理器将EntityFramework安装到我的项目中后,该问题已解决。请查看您已经添加了EntityFramework的项目引用。最后,在将EntityFramework添加到项目引用之后,可以使用模板添加视图。
答案 13 :(得分:0)
这些解决方案都不适合我。我刚刚更新了Visual Studio(有可用的更新),但突然就可以了。
答案 14 :(得分:0)
一个简单的VS重新启动对我有用。我刚刚关闭VS,然后重新启动。
答案 15 :(得分:0)
以防万一有人感兴趣 - 带有干净缓存的解决方案对我没用。但是我设法解决了一个问题,但卸载了系统中的所有.Net框架,然后逐个安装它们。
答案 16 :(得分:0)
我也一直在抓头,在我的实例中发现,我的Web.config文件中增加了一个附加部分。对此进行评论并进行重建即可解决该问题,现在我可以添加一个新的控制器。
答案 17 :(得分:0)
我的问题是模型类中使用的类型。
使用如下类型:
[NotMapped]
[Display(Name = "Image")]
public HttpPostedFileBase ImageUpload { get; set; }
[NotMapped]
[Display(Name = "Valid from")]
public Nullable<DateTime> Valid { get; set; }
[NotMapped]
[Display(Name = "Expires")]
public Nullable<DateTime> Expires { get; set; }
在代码生成器中不再起作用。我必须删除这些类型并在没有它们的情况下使用脚手架,然后再添加它们。
这很愚蠢,[NotMapped]
曾经在脚手架上工作。
使用基本类型:int,字符串,字节等,而没有类型:DateTime,List,HttpPostedFileBase等。
答案 18 :(得分:0)
我有一个相同的错误,但是在VS 2017中,当我创建一个控制器时。我做的方式与@ sh.alawneh所写的相同。另外,我尝试做@longday编写的内容。但这没有用。然后我尝试另一种方式:
我在那里选择了一个新的控制器,它工作正常。
也许我会帮助某人。
答案 19 :(得分:0)
我目前正在尝试使自己熟悉MVC4。我已经使用MVC 5进行了一段时间的开发,但是我需要了解MVC 4才能获得MCSD认证。我正在关注Pluralsight上的教程,该教程针对的是旧版本的Entity Framework和MVC(该视频于2013年发布!)
2个小时前,我遇到了完全相同的错误,并且一直在试图找出问题所在。幸运的是,由于本教程中的项目没有意义,因此我能够在整个过程中向后退,以找出导致对象引用未设置错误的原因并进行修复。
我发现实际解决方案的结构中有一个错误。
我建立了一个MVC Web项目(' ASP.NET Web应用程序( .NET Framework )'),但是我还有2个类库,其中一个我的数据访问层,其中一个负责为连接到我的数据库的模型设置域。
这些都是“ 类库( .NET Standard )”类型。
MVC项目不喜欢这样。
一旦我创建了类型为“ 类库( .NET Framework )” 的新项目,并将所有文件从旧库复制到新库并修复了MVC Web项目的参考,重新构建和重试使我能够正确支撑View。
这似乎是一个显而易见的解决方案,不要将.NET Standard项目与.NET Framework项目并排放置,并希望它能正常工作,但这可能会帮助其他人解决此问题!
答案 20 :(得分:0)
我遇到了类似的问题,导致代码生成无法正常工作。显然,我的元数据具有未知的属性或值。我必须承认,我并没有在这里尝试所有答案,但是谁真的想重新安装或下载正在使用的众多Nuget软件包中的任何一个。
清理对我有用的项目(构建->清理解决方案)生成器正在使用一些过时的二进制文件来构建控制器和视图。清洁溶液将删除过时的二进制文件和箔。
答案 21 :(得分:0)
在ASP.NET Core中,检查您是否具有Microsoft.VisualStudio.Web.CodeGeneration.Tools
nuget程序包,它是否与您的项目版本相对应。
答案 22 :(得分:0)
尝试清除ComponentModelCache,
1.关闭Visual Studio
2.删除此文件夹中的所有内容C:\ Users \ AppData \ Local \ Microsoft \ VisualStudio \ 14.0 \ ComponentModelCache
3.Restart Visual Studio
4.再次检查
这也使用VS2017来获得解决方案
答案 23 :(得分:0)
我刚刚重新启动了我的视觉工作室,它确实有效。