C# 数据的临时收集

C# 数据的临时收集,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,在一个或多个控制器之间临时保存和访问数据收集的最佳方法是什么 例如,view1.cshtml包含一个包含以下数据项的网格: -------------------- Name | Address | Age -------------------- aa | ad1 | 11 -------------------- bb | ad2 | 22 ------------------- cc | ad3 | 33 -------------------- 如果

在一个或多个控制器之间临时保存和访问数据收集的最佳方法是什么

例如,
view1.cshtml
包含一个包含以下数据项的网格:

--------------------
Name | Address | Age
--------------------
aa   | ad1     | 11
--------------------
bb   | ad2     | 22
-------------------
cc   | ad3     | 33
--------------------
如果用户选择了前两行,则所选行项目需要显示在另一个名为
view2.cshtml
的视图的网格中。用户可以再次返回到第一个视图,如果选择一个新行项目,那么我想将所选项目也附加到第二个视图上显示的网格中


我尝试了ViewBag和TempData来临时存储数据。但不幸的是,数据有时会被清除。解决这种情况的最佳选择是什么?

我会使用会话来存储数据集合,因为您需要在一个或多个控制器之间传递数据

保存:

List items=newlist();
增加(T)项;
...
会话[“YourCollection”]=项目;
获取:

List items=Session[“YourCollection”]作为列表;

我将使用会话来存储数据集合,因为您需要在一个或多个控制器之间传递数据

保存:

List items=newlist();
增加(T)项;
...
会话[“YourCollection”]=项目;
获取:

List items=Session[“YourCollection”]作为列表;

我将使用会话来存储数据集合,因为您需要在一个或多个控制器之间传递数据

保存:

List items=newlist();
增加(T)项;
...
会话[“YourCollection”]=项目;
获取:

List items=Session[“YourCollection”]作为列表;

我将使用会话来存储数据集合,因为您需要在一个或多个控制器之间传递数据

保存:

List items=newlist();
增加(T)项;
...
会话[“YourCollection”]=项目;
获取:

List items=Session[“YourCollection”]作为列表;

由于网格上的信息来自某个数据源,很可能是一个具有唯一标识符的数据库,当用户单击行时,我只需将用户重定向到另一个页面并传递所选行的ID


在另一个控制器上,您只需检索传入的ID的数据。

因为网格上的信息来自某个数据源,很可能是具有唯一标识符的数据库,当用户单击行时,我只需将用户重定向到另一个页面并传递所选行的ID


在另一个控制器上,您只需检索传入的ID的数据。

因为网格上的信息来自某个数据源,很可能是具有唯一标识符的数据库,当用户单击行时,我只需将用户重定向到另一个页面并传递所选行的ID


在另一个控制器上,您只需检索传入的ID的数据。

因为网格上的信息来自某个数据源,很可能是具有唯一标识符的数据库,当用户单击行时,我只需将用户重定向到另一个页面并传递所选行的ID


在另一个控制器上,您只需检索传入的ID的数据。

一种方法是在操作中传递对象,如下所示:

return RedirectToAction("ActionName", new { data= items });
List<AnyType> items = (List<AnyType>)TempData["MyList"];
控制器操作方法签名可能类似于:

public ActionResult LoginFailed(List<T> items)
{
    ...
}

一种方法是在动作中传递对象,如下所示:

return RedirectToAction("ActionName", new { data= items });
List<AnyType> items = (List<AnyType>)TempData["MyList"];
控制器操作方法签名可能类似于:

public ActionResult LoginFailed(List<T> items)
{
    ...
}

一种方法是在动作中传递对象,如下所示:

return RedirectToAction("ActionName", new { data= items });
List<AnyType> items = (List<AnyType>)TempData["MyList"];
控制器操作方法签名可能类似于:

public ActionResult LoginFailed(List<T> items)
{
    ...
}

一种方法是在动作中传递对象,如下所示:

return RedirectToAction("ActionName", new { data= items });
List<AnyType> items = (List<AnyType>)TempData["MyList"];
控制器操作方法签名可能类似于:

public ActionResult LoginFailed(List<T> items)
{
    ...
}

我认为这是最好的选择,就像MVC一样,你首先应该考虑无状态方法。我认为这是最好的选择,就像MVC一样,你应该首先考虑无状态方法。我认为这是更好的选择,就像MVC一样,你应该首先考虑无状态方法。我认为这是与MVC你更好的选择。应该首先考虑无状态的方法。不要只是为了保持另一个或两个职位而把数据填入会话中。这是一个典型的糟糕设计。不要仅仅为了在一两篇文章中保留数据而将数据塞进会话中。这是一个典型的糟糕设计。不要仅仅为了在一两篇文章中保留数据而将数据塞进会话中。这是一个典型的糟糕设计。不要仅仅为了在一两篇文章中保留数据而将数据塞进会话中。这是典型的糟糕设计。