C# 将对象从一个视图传递到另一个控制器,以使用该对象数据渲染第二个视图

C# 将对象从一个视图传递到另一个控制器,以使用该对象数据渲染第二个视图,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我有一个视图,显示模型中的项目列表。每个项目上都有一个图像,这是一个可单击的链接。此链接指向RouteURL方法,该方法将其带到新控制器,以便下一个视图使用此项信息进行渲染 问题是我需要将项目信息传递给RouteURL正在调用的控制器。传递了6个属性,因此我不想将它们单独添加到查询字符串中。有没有更好的方法将单个对象传递给下一个控制器,而不是像那样单独传递属性 编辑评论回复。 为了简单起见,现在有没有一种方法可以在表单中发布这个对象而不指定每个单独的道具?例如: @using (Html.B

我有一个视图,显示模型中的项目列表。每个项目上都有一个图像,这是一个可单击的链接。此链接指向RouteURL方法,该方法将其带到新控制器,以便下一个视图使用此项信息进行渲染

问题是我需要将项目信息传递给RouteURL正在调用的控制器。传递了6个属性,因此我不想将它们单独添加到查询字符串中。有没有更好的方法将单个对象传递给下一个控制器,而不是像那样单独传递属性

编辑评论回复。 为了简单起见,现在有没有一种方法可以在表单中发布这个对象而不指定每个单独的道具?例如:

  @using (Html.BeginForm("NewAction", "SameController", FormMethod.Post))
            {
              @Html.Hidden("NewObject.item.Id",Item.Id)
            }

这确实可以按照我的需要工作,但我担心如果对象在第一个控制器上发生更改,这将中断,因为它不是强类型的。是否有更强类型的方法来完成此任务?

是否有数据源?如果是这样的话,您是否可以传入项的Id并从数据源中提取其余的数据?有一个Id,但当数据已经在上一页时,我不想再次查询数据库。我可以理解您为什么要这样做,但更好的选择是从数据库中提取该信息,这样您就不会有错误例如,数据不一致的问题。数据源的设计非常快速,因此我不必担心额外的数据库查询。我能想到的唯一方法是将列表存储在像redis这样的缓存或内存中,但如果有大量请求,这将产生巨大的负面影响,因为每个请求列表都会存储在内存中。你不能像那样传递对象,完全同意@DavidFord。网络是(而且应该是)无状态的。与其尝试在请求之间来回传递堆积如山的数据,或者尝试将状态转移到无状态协议上,不如直接从数据库中提取新的数据。有数据源吗?如果是这样的话,您是否可以传入项的Id并从数据源中提取其余的数据?有一个Id,但当数据已经在上一页时,我不想再次查询数据库。我可以理解您为什么要这样做,但更好的选择是从数据库中提取该信息,这样您就不会有错误例如,数据不一致的问题。数据源的设计非常快速,因此我不必担心额外的数据库查询。我能想到的唯一方法是将列表存储在像redis这样的缓存或内存中,但如果有大量请求,这将产生巨大的负面影响,因为每个请求列表都会存储在内存中。你不能像那样传递对象,完全同意@DavidFord。网络是(而且应该是)无状态的。与其尝试在请求之间来回传递堆积如山的数据,或者尝试将状态转移到无状态协议上,不如从数据库中提取新的数据。