在MVC 3模型ID属性中,ScaffoldColumn属性的真正优势是什么设置为False

Sha*_*awn 7 asp.net-mvc scaffolding asp.net-mvc-3

我是MVC的新手,当我为代码第一种方法构建模型类时,每个键ID列都具有属性[ScaffoldColumn(false)]集.我这样做是因为我不想在明显的视图中显示的ID的,我知道周围的工作对这个问题会删除通过包含一个ID字段每个视图的UI生成的HTML.

我在模型中使用ScaffoldColumnset to 遇到的问题false首先被注意到,当一个视图的Edit方法被触发时,我收到了这个错误:存储更新,插入或删除语句影响了意外的行数(0).当我在调试中运行代码时,ID属性实际上设置为零,如我的视图Edit HttpPost方法中所示.

我的问题,我希望有人可以详细阐述,是什么在具有类似于属性点ScaffoldColumn,如果ID没有被发送到控制器的方法(S)喜欢在这种情况下,编辑在MVC HttpPost?我应该以旧时尚的方式解决这个问题,并删除由此属性未添加到键/外键属性时生成的MVC模板创建的每个视图中的HTML标记?

我找到了这个问题,如果你设置这个属性false是为每个HttpPost方法添加一个ID参数,而不是在调用之前设置适当的ID属性字段SaveChanges().

McG*_*gle 3

好吧,您不希望将其搭建为可编辑字段,但您当然希望它以表单形式出现,正如您所注意到的。解决方案是手动将其添加为视图中的隐藏字段。像这样的东西:

@Html.HiddenFor(model => model.id)
Run Code Online (Sandbox Code Playgroud)