【问题标题】:MissingMethodException on razor view after type change on view model视图模型上的类型更改后剃刀视图上的 MissingMethodException
【发布时间】:2012-08-31 03:29:04
【问题描述】:

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

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

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

但是,当我通过 UI 转到该页面时,我得到了这个异常:

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

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

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

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

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

    幸运的是,我有答案 - 清除您的临时 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\... 文件夹中。

    【讨论】:

    • 我在更新剃刀视图使用的 HtmlHelper 扩展方法时遇到此错误。该解决方案在 OP 9 年后仍然有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多