首页 新闻 会员 周边

MVC编辑数据,提交后字段值为空问题。

0
悬赏园豆:5 [已解决问题] 解决于 2014-02-22 11:40

数据库表Record里有个外键employeeId,引用Employee表Id字段。

程序Edit Action 里:

通过EF获取记录及其依赖项:

Record record = (from r in db.Records.Include("Employee")
where r.id == 123
select r).First();

调试能看到获取到的Record对象的 EmployeeId、Employee字段都有值。

但是在[HttpPost]Edit Action里:

调试看到 EmployeeId、Employee字段的值都是空。

尝试自己填充这两个字段,则提示:违反了引用完整性约束: 在此关系的主对象和依赖对象之间,定义引用约束的属性值不一致。

赏音师的主页 赏音师 | 菜鸟二级 | 园豆:221
提问于:2014-02-21 12:00
< >
分享
最佳答案
1

是不是前台没有明确写出来  @Html.HiddenFor(model=>model.EmployeeId)  导致后台没有获取到值

收获园豆:5
开山怪不怪 | 小虾三级 |园豆:544 | 2014-02-21 17:08

@Html.HiddenFor(model => model.EmployeeId)
@Html.HiddenFor(model => model.Employee.Name)
昨天我也想到这点,试了下,而且前台代码都是包括在 @using (Html.BeginForm()) {} 里的,但是这样做提交后提示:违反了引用完整性约束: 在此关系的主对象和依赖对象之间,定义引用约束的属性值不一致。

然后刚才试了下只留下:@Html.HiddenFor(model => model.EmployeeId) ,成功了!

提交后 Record.Employee 对象是空的,不过只要 Record.EmployeeId 不空就好。

赏音师 | 园豆:221 (菜鸟二级) | 2014-02-22 11:40

@Badcode Hsu: 这个错误不太懂,但一般外键的话只需要提交Id就可以

开山怪不怪 | 园豆:544 (小虾三级) | 2014-02-22 11:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册