我们在 Asp.Net MVC 4 Razor 中有这个非常奇怪的错误,在视图中,我们有以下代码:
@Html.InlineEditingContentText(CS.General_v4.Enums.HtmlTagName.Span, VisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Weather_Title, "weather-widget-title masterpage-widget-title")
InlineEditingContentText
是我们内部的扩展方法。传递的第二个参数是一个枚举参数,从上面可以看出,值为VisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Weather_Title
. 现在,当您调试扩展方法InlineEditingContentText
时,接收到的实际第二个参数不是VisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Weather_Title
,但VisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Header_LoggedOutText
它恰好是 ContentTextIdentifier 枚举之后的下一个值VisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Weather_Title
。
我们没有为枚举赋值,因此它们各自的int
值会自动递增。
- 奇怪的是,如果我们在另一个工作站上加载完全相同的项目,这工作正常。
- 此外,如果我们对视图进行一些更改(比如添加一个空格)并保存,这也可以正常工作。
任何可能的洞察为什么会发生这个奇怪的问题?
编辑#1:另外,当我们在部署服务器上上传网站时,使用同一工作站编译后,错误也被延续
编辑#2:2013-10-22 > 我们仍然遇到同样的问题,即使在实际生产服务器上部署文件时,这种不正确的枚举值也会被继承。解决该问题的唯一方法是从服务器/本地删除视图,然后再次重新覆盖它们。知道我们如何解决这个问题吗?我们不应该缓存视图,所以不能真正理解为什么会这样?将不胜感激任何形式的帮助!