Asp.net mvc ASP.NET MVC从单个视图向相关的多个表添加记录

Asp.net mvc ASP.NET MVC从单个视图向相关的多个表添加记录,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我是MVC新手,如果我没有正确解释我的需求/没有使用正确的术语,我深表歉意 我有一个简单的数据库,其中包含项目和细节实体。他们有一对多的关系,所以项目有很多细节 我想从一个视图向这两个表添加记录 到目前为止,我的理解是,如果我为'item'添加一个create操作,它将在HTTPPost请求中获得一个'item'对象。那么这是否意味着我必须为细节创建单独的操作/视图 还是“局部视图”应该在这里使用?谁能给我举个例子吗。非常感谢。谢谢。这是该技术的最佳参考: 听起来您使用的是强类型视图,并利用了一

我是MVC新手,如果我没有正确解释我的需求/没有使用正确的术语,我深表歉意

我有一个简单的数据库,其中包含项目细节实体。他们有一对多的关系,所以项目有很多细节

我想从一个视图向这两个表添加记录

到目前为止,我的理解是,如果我为'item'添加一个create操作,它将在HTTPPost请求中获得一个'item'对象。那么这是否意味着我必须为细节创建单独的操作/视图


还是“局部视图”应该在这里使用?谁能给我举个例子吗。非常感谢。谢谢。

这是该技术的最佳参考:


听起来您使用的是强类型视图,并利用了一些MVC魔术,可以在实际操作中自动填充该类型。我还没有使用MVC3,但在MVC2中,您可能会使用UpdateModel从formcollection自动填充您的类型。无论MVC是否为您的应用程序发挥了神奇的作用,您都将始终从视图向控制器发送信息(发布或获取url字符串)-您将始终能够访问url字符串,或访问原始值的表单集合

也就是说,您可能想要创建一个ViewModel,这是一个适合视图需要的模型。在您的情况下,它只是一个复合模型。这个ViewModel只是一个普通类。它应该像将每个类型公开为这个新类的属性一样简单。如果这样做,您不会忘记正确地为类/属性添加前缀,例如: Model.Item.SomeProperty、Model.Detail.SomeOtherProperty 如果不这样做,MVC可能无法正确映射返回的值


这样就可以在控制器中获得所需的数据,然后只需插入数据库即可

是的,我看到了。我可以用它来增加细节。但我不确定风景应该是什么样子。它应该有两个局部视图还是什么(一个用于项目,一个用于细节)?