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

问题描述 投票:3回答:5

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

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

假设这个类:

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合作。

asp.net-mvc razor visual-studio-2013 asp.net-mvc-5 intellisense
5个回答
2
投票

VS2017也出现相同的错误。删除组件模型缓存似乎有所帮助。关闭Visual Studio,转到文件夹

C:\ Users \用户your.name.here \应用程序数据\本地\微软\ VisualStudio的\ version.goes.here \ ComponentModelCache

并删除该文件夹中的文件。在重新启动VS之后,它还应该按照@ Grzesiek的回答提示修复“不一致的行结束”,并在VS重新启动时重新创建组件模型文件。之后一切都应该再次起作用。


1
投票

VS 2015中也有一个错误。当您对模型进行重大更改时,Razor intellisense可能仍然记得旧模型。

@model MyForm.Models.SomeModelIChangedAround

重启VS 2015修复了它。


1
投票

我之前遇到过这个问题,解决方案是修复“不一致的行结束”。

从其他来源复制粘贴代码部分可能会导致它,如果Visual不会指出这一点,那么最好的解决方案可能是在新文件中重新键入文件的内容。


0
投票

转到工具,然后在文本编辑器选项下修改所需语言选项中的智能感知设置


0
投票

我正在使用VB.Net MVC5并遇到了这个问题。原来VB中的指令是@ModelType@model指令适用于C#。

© www.soinside.com 2019 - 2024. All rights reserved.