好的,自从几周以来,我在视图中失去了对模型的智能感知。
我很确定它不是代码问题,因为它适用于同一项目中的其他开发人员。
假设这个类:
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合作。
答案 0 :(得分:2)
VS2017也存在同样的错误。 删除组件模型缓存似乎有所帮助。关闭Visual Studio,转到文件夹
C:\ Users \用户your.name.here \应用程序数据\本地\微软\ VisualStudio的\ version.goes.here \ ComponentModelCache
并删除该文件夹中的文件。在重新启动VS之后,它还应该提示修复&#34;不一致的行结尾&#34;根据@ Grzesiek的回答,VS重新启动时会重新创建组件模型文件。之后,一切都应该再次运作。
答案 1 :(得分:1)
VS 2015也有一个错误。当您对模型进行重大更改时,Razor intellisense可能仍然记得旧模型。
@model MyForm.Models.SomeModelIChangedAround
重启VS 2015修复了它。
答案 2 :(得分:1)
之前我遇到过这个问题,解决方法是修复“不一致的行结尾”。
从其他来源复制粘贴代码部分可能会导致它,如果Visual不会指出这一点,那么最好的解决方案可能是在新文件中重新键入文件的内容。
答案 3 :(得分:0)
转到工具,然后在文本编辑器选项
下修改所需语言选项中的智能感知设置答案 4 :(得分:0)
我正在使用VB.Net MVC5并遇到此问题。原来VB中的指令是@ModelType
。 @model
指令用于C#。