1

*已解决,请参阅下面的更新

我有一个具有下面列出的两个属性的类:

[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 不同 - 这反映了上面的差异)。

更新

解决了问题,请参阅下面的答案。

4

2 回答 2

1

I had a similar issue where I added the [HiddenInput(DisplayValue = false)] annotation to a productId property in a class in my model. The model was a separate project from my MVC project. In order to get the annotations I had to include a reference to System.Web.Mvc but I had included v. 4.0.0.0 while my MVC project was v. 3.0.0.0

This caused the annotation to not work even though all projects would compile and all other functionality remained intact.

I fixed this by editing the .csproj file for my model project, switching the version of the included reference from 4.0.0.0 to 3.0.0.0. This could also be accomplished by removing the reference to the wrong version and re-adding the correct one.

于 2013-04-08T15:48:45.857 回答
1

弄清楚了。. . 有点儿。

奇怪的是,在尝试继续前进一段时间后,我在应用程序的其他地方遇到了另一个问题。那个问题和詹姆斯先生对原始问题的评论使我得到了这个答案

为简单起见,我刚刚从给我问题的机器上卸载了 MVC4(我没有在另一台机器上安装 MVC4),我的两个问题都消失了。

于 2012-07-11T13:42:04.820 回答