带项目的对象:视图 - 控制器通信

时间:2016-09-12 15:13:44

标签: c# asp.net-mvc asp.net-mvc-5

所以,我不知道如何搜索这个问题的答案,主要是因为有几个方面,我不知道如何解决。所以 - 就在这里。

我有一个对象,我们称之为 ObjectWithItems ,它有List<Item> Item 对象。两者都有单独的视图和控制器(这对我来说似乎合乎逻辑,但我无法确定)。

我想要实现的是 - 转到 ObjectWithItemsController 的创建操作并填写特定于其的必要信息。然后,我点击ActionLink“添加项目”,它将我带到 ItemController 的创建操作。呈现视图,我输入特定的信息。

我不知道该怎么做以下内容:当我提交当前的项目时,应将其传递给 ObjectWithItems 的前一个Create视图,添加到List<Item>。此外,它应该包含在调用项目创建方法和相应视图的渲染之前输入的信息。

我知道这是一个有点模糊的描述,但那是因为我刚刚开始学习ASP MVC并且仍然不知道什么是什么。有没有经过测试的方法?

2 个答案:

答案 0 :(得分:1)

使用Session [“key”]对象允许您存储任何类型的对象,例如:

List<Table> Rows = db.Table.Where(t => t.id < 100).ToList(); // 100 first rows

Session["TableRows"] = Rows;

以后当你想要挽回他们时:

List<Table> Rows = (List<Table>)Session["TableRows"] // don't forget to cast it

只要您没有达到ASP超时,您的对象就会存在于Session中

答案 1 :(得分:-2)

View-controller之间的通信是通过表单的HTTP Post完成的。

< form class="form-horizontal" method="post" >
or @using (Html.BeginForm()) 

More info here with example