asp.net-mvc – 在MVC 3模型ID属性中将ScaffoldColumn属性设置为False的真正优势是什么

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 在MVC 3模型ID属性中将ScaffoldColumn属性设置为False的真正优势是什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是MVC的新手,当我为代码第一种方法构建我的模型类时,每个键ID列都设置了[ScaffoldColumn(false)]属性.我这样做是因为我不希望显然在视图中显示ID,我知道解决这个问题的方法删除包含ID字段的每个视图中UI生成HTML.

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

我希望有人可以详细说明我的问题,如果没有将ID发送到控制器方法(例如编辑HttpPost),那么在MVC中使用像ScaffoldColumn这样的属性是什么意思?我应该采用旧时尚方式,并删除由此属性添加到键/外键属性生成的MVC模板创建的每个视图中的HTML标记

我找到的工作是,如果将此属性设置为false,则为每个HttpPost方法添加一个ID参数,然后在调用SaveChanges()之前设置相应的ID属性字段.

解决方法

好吧,你不希望它被搭建成一个可编辑的字段,但当然你确实想要它在表单中,正如你所注意到的那样.解决方案是将其手动添加为视图中的隐藏字段.像这样的东西:
@Html.HiddenFor(model => model.id)

猜你在找的asp.Net相关文章