2011-01-23 61 views
3

我对MVC非常陌生,所以我道歉如果我没有正确解释我的需求/没有使用正确的术语。ASP.NET MVC从单个视图向相关的多个表添加记录

我有项目详细实体一个简单的数据库。他们有一个一对多的关系,所以Item有很多Details。

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

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

或者是'partial-view'我应该在这里使用?有人可以给我一个例子。真的很感激它。谢谢。

回答

2

这听起来像你使用强类型的意见,并采取了一些MVC魔力,自动填充中的行动,类型的优势。我还没有使用MVC3,但在MVC2中,您可能会使用UpdateModel从formcollection中自动填充您的类型。无论MVC是否为你做了一些魔术,你总是将视图中的信息发送到你的控制器(POSTing或者用url字符串获取) - 你总是可以访问url字符串或者表单集合原始值。

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

这应该让你在你的控制器中需要的数据 - 那么你只需要插入数据库。

+0

现在有意义。谢谢。 – 2011-01-23 06:40:17

相关问题