在视图模型上更改类型后,剃刀视图上的 MissingMethodException

Dec*_*lty 2 html asp.net exception razor asp.net-mvc-3

我的 MVC3 Razor 视图中有一个 EditorFor HTML 助手,如下所示:

@Html.EditorFor(x => x.RouteOfReferral,
                MVC.Shared.Views.EditorTemplates.TabValidationMessage, 
                new { 
                      ValidationPropertyName = ogt.PropertyName(
                         x => x.RouteOfReferral) 
                    }
               )
Run Code Online (Sandbox Code Playgroud)

在实体上,我将属性的类型从一种引用数据类型更改为另一种,更新视图模型以反映这一点,运行所有测试并全部通过。

但是,当我通过 UI 进入页面时,出现了这个异常:

System.MissingMethodException
Method not found:'MyProject.Entities.ReferenceData.Entity.RouteOfReferral 
MyProject.Entities.ReferenceData.Entity.get_RouteOfReferral()'.
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我注释掉了 HTML 助手,刷新了页面,它照常打开。然后我取消了 HTML 帮助程序的注释,页面再次像往常一样打开,从那时起就很好了。

问题是,现在我已经部署到集成测试平台,出现了同样的问题。

有任何想法吗?

Kus*_*han 5

我很惊讶这在 4 年内没有得到答案。我自己也遇到了同样的问题,这是 Google 上的最佳答案。

幸运的是,我有答案 - 清除您的临时 ASP.net 文件。

您可以使用此单行 powershell:

Get-ChildItem “C:\Windows\Microsoft.NET\Framework*\v*\Temporary ASP.NET Files” -Recurse | Remove-Item -Recurse
Run Code Online (Sandbox Code Playgroud)

此处详述的任何方法。

请记住,在具有 64 位应用程序的 64 位系统上,临时文件将位于C:\WINDOWS\Microsoft.NET\Framework64\...文件夹中而不是C:\WINDOWS\Microsoft.NET\Framework\...文件夹中。