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

时间:2011-01-23 04:33:13

标签: asp.net-mvc asp.net-mvc-3

我对MVC很新,所以如果我没有正确解释我的要求/没有使用正确的术语,我道歉。

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

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

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

或者是'部分观察'我应该在这里使用什么?有人可以举个例子。真的很感激。感谢。

2 个答案:

答案 0 :(得分:2)

听起来你正在使用强类型视图,并利用一些自动填充该类型的MVC魔法。我还没有使用过MVC3,但是在MVC2中,你可能会使用UpdateModel从formcollection自动填充你的类型。无论MVC是否为您做了一些魔术,您将始终从您的视图向控制器发送信息(POSTing或GETting with url string) - 您将始终能够访问url字符串或表单集合原始价值。

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

这应该可以为您提供控制器中所需的数据 - 然后您只需插入数据库即可。

答案 1 :(得分:1)