今天发现一个问题,我用model从视图层【Edit.cshtml】给Controller传参,然后controller对数据库进行更新,但是我发现,如果某一项属性值没有从视图层传过来,数据库更新后的内容这一项就会被置为空。
可是,有些时候我们并不像改动某些数据项,那么,这些数据项自然不会用@Html.EditorFor()进行显示。后来我想了一个办法,就是用@Html.Hidden()来保存参数,让参数回传,覆盖原值。可是我觉得这不是个好办法,如果属性是password,这样似乎不是很安全。
所以我想问问大家,怎样才能不用回传参数(不需要修改的),而数据库也不会将之设置为空?
(我是新手,园豆不多,大家见谅)
我有一个想法,可以试一下。
在Controller里面,先从数据库里面获取某个User的实体,然后用新的Edit页面传过来的User模型加上老的User实体中的OtherThins字段,就可以用来构造一个新的User实体了,然后用Entity Framework的方法来更新这条User记录。
嗯,我觉得可以,不过这样的话,似乎就要增加数据库的操作了
MVC + Entity Framework