在剃刀视图中没有强类型模型的智能感知

时间:2014-12-18 14:26:55

标签: asp.net-mvc razor visual-studio-2013 asp.net-mvc-5 intellisense

好的,自从几周以来,我在视图中失去了对模型的智能感知。

我很确定它不是代码问题,因为它适用于同一项目中的其他开发人员。

假设这个类:

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会向我显示PropertyAPropertyB。没有任何反应。

但是,如果我输入@Html.有HtmlHelper的方法列表。

如果我输入@Model.Foo,则resharper会让我在Foo上创建TestViewModel属性。

我猜有些Visual Studio模块在剃刀视图中无法正常处理intellisense,但我看不清楚。

我使用 Visual Studio 2013 MVC5 Resharper 8.2

修改

我有几个月的这种行为。所以我做了关闭并重新打开了项目,关闭并重新打开了Visual Studio,并从那时起重启了我的计算机很多次。

我并不担心,因为我没有做很多UI ......

确定,但我认为就像我安装了VS2013一样。我确定它与VS2012合作。

5 个答案:

答案 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#。