* 已解决,请参阅下面的更新
我有一个类,其中包含以下两个属性:
[HiddenInput(DisplayValue = false)]
public int ProductId { get; set; }
[Required(ErrorMessage = "Please enter a product name")]
public string Name { get; set; }
当我在一台机器上运行解决方案时,当我导航到相关页面时,我没有看到EditorFor ProductId - 当我在另一台机器上运行它(同样来自github)我确实看到了它(并且能够编辑它)。我不想看到它。
我认为每台机器上唯一重要的是实际的数据库本身。
为什么我可以在一台计算机上看到我的ProductId属性编辑器,但在使用相同的代码时却看不到另一台?
注意
MVC在每台机器上呈现不同的视图(生成的HTML不同 - 这反映了上面的差异)。
更新
解决了问题,请参阅下面的答案。
答案 0 :(得分:1)
想出来。 。 。那种。
奇怪的是,在尝试继续前进一段时间后,我在应用程序的其他地方遇到了另一个问题。这个问题和MisterJames对原始问题的评论引导我进入answer。
为了简单起见,我刚从机器上卸载MVC4,这给我带来了问题(我没有在其他机器上安装MVC4),我的两个问题都消失了。
答案 1 :(得分:1)
我遇到了类似的问题,我将[HiddenInput(DisplayValue = false)]
注释添加到模型中的类的productId属性中。该模型是我的MVC项目的一个单独项目。为了获得注释,我必须包含对System.Web.Mvc
的引用,但我已经包含v.4.0.0.0而我的MVC项目是v.3.0.0.0
这导致注释不起作用,即使所有项目都将编译并且所有其他功能保持不变。
我通过编辑我的模型项目的.csproj文件来修复此问题,将所包含引用的版本从4.0.0.0切换到3.0.0.0。这也可以通过删除对错误版本的引用并重新添加正确的版本来实现。