好的,自从几周以来,我在视图中失去了对模型的智能感知。
我很确定这不是代码问题,因为它适用于同一项目中的其他开发人员。
假设这个类:
namespace Project.UI.ViewModels
{
public class TestViewModel
{
public int PropertyA { get; set; }
public string PropertyB { get; set; }
}
}
而这种观点:
@model Project.UI.ViewModels.TestViewModel
<div>
@Model.PropertyA
</div>
当我在我的视图中键入@Model.
时,我希望intellisense向我展示PropertyA
和PropertyB
。没有任何反应。
但是,如果我输入@Html.
,我确实有HtmlHelper的方法列表。
如果我输入@Model.Foo
,resharper会让我在Foo
上创建TestViewModel
属性。
我想有一些Visual Studio模块在剃刀视图中处理intellisense无法正常工作,但我看不出是什么。
我使用Visual Studio 2013,MVC5,Resharper 8.2。
编辑
我几个月后就有这种行为。所以我关闭并重新打开了项目,关闭并重新打开了Visual Studio,并重新启动了我的计算机很多次。
我并不担心,因为我没有做很多UI ...
我不确定,但我认为就像我安装了VS2013一样。我确定它与VS2012合作。
VS2017也出现相同的错误。删除组件模型缓存似乎有所帮助。关闭Visual Studio,转到文件夹
C:\ Users \用户your.name.here \应用程序数据\本地\微软\ VisualStudio的\ version.goes.here \ ComponentModelCache
并删除该文件夹中的文件。在重新启动VS之后,它还应该按照@ Grzesiek的回答提示修复“不一致的行结束”,并在VS重新启动时重新创建组件模型文件。之后一切都应该再次起作用。
VS 2015中也有一个错误。当您对模型进行重大更改时,Razor intellisense可能仍然记得旧模型。
@model MyForm.Models.SomeModelIChangedAround
重启VS 2015修复了它。
我之前遇到过这个问题,解决方案是修复“不一致的行结束”。
从其他来源复制粘贴代码部分可能会导致它,如果Visual不会指出这一点,那么最好的解决方案可能是在新文件中重新键入文件的内容。
转到工具,然后在文本编辑器选项下修改所需语言选项中的智能感知设置
我正在使用VB.Net MVC5并遇到了这个问题。原来VB中的指令是@ModelType
。 @model
指令适用于C#。