我正在使用一个表单从用户那里获取一些数据。当前用户数据作为只读字段和其他一些字段加载到表单中,以供用户输入。我的模型是这样的:
Mainobject
-Field1
-Field2
...
-Userdataobject
-Name
-Street
...
表单中的文本字段已绑定到模型。用户数据从数据库加载
Userdataobject userobj = (from c in _context.Userdataobejct where c.Id == someid select c).Single();
Mainobject.Userdataobject = userobj;
如果我将表格提交给这样的行动
[HttpPost]
public ActionResult SomeAction(Mainobject obj)
...
子对象Userdataobject包含数据,但id丢失了???问题是,如果我将mainobject添加到datacontext并保存它,那么Userdataobject将被创建为一个新项。
您的视图中可能没有id的输入,因此不会传输id。在表单中使用HiddeFor可以创建一个不可见的输入元素,该元素将随表单投递一起发送。