Asp.net MVC、Razor 和 Entity Framework:子对象丢失 id/relation

Asp.net MVC, Razor & Entity Framework: Childobject lost id/relation

我正在使用表单从用户那里获取一些数据。当前用户数据作为只读字段和一些其他字段加载到表单中以供用户输入。 我的模型如下所示:

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 添加到数据上下文并保存它,Userdataobject 将被创建为一个新项目。

您可能没有在您的视图中输入 id,因此不会传输 id。在您的表单中使用 HiddenFor 创建一个不可见的输入元素,该元素将与您的表单一起传输 post。