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

时间:2012-09-06 10:21:36

标签: asp.net html asp.net-mvc-3 exception razor

我在MVC3 Razor视图中有一个EditorFor HTML帮助器,如下所示:

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

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

但是,当我通过用户界面访问该页面时,我遇到了这个例外:

System.MissingMethodException
Method not found:'MyProject.Entities.ReferenceData.Entity.RouteOfReferral 
MyProject.Entities.ReferenceData.Entity.get_RouteOfReferral()'.

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

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

你可以使用这个单行的PowerShell:

Get-ChildItem “C:\Windows\Microsoft.NET\Framework*\v*\Temporary ASP.NET Files” -Recurse | Remove-Item -Recurse

或详细列出的任何方法here

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