实际上我想从控制器动作向webform加载方法发送一个对象。 我不喜欢使用Session或QueryString。
答案 0 :(得分:1)
如果这两个页面都在不同的域中
从MVC控制器操作中创建HttpWebRequest到webform页面,在HttpWebRequest的Request主体中发送要发送的数据。在检索方面,您可以使用Request对象并读取数据。
如果两个网页都在同一个域中
你可以使用Cache(服务器端),Cookies(客户端),Hiddenfields(从MVC控制器到ASPX页面的Form Post)
答案 1 :(得分:1)
根据我的理解,您希望在稍后的Webforms请求中使用您在MVC请求中创建的某个对象。
除了使用Session变量或QueryString之外,您还可以将对象数据存储在cookie中并在WebForm中检索它。
每个选项都有其优点:
处理大量数据:
在评论中你提到数据是巨大的。因此,我建议在MVC部件上生成数据后存储数据,例如,在数据库(甚至文件系统)中,只需通过上述方法之一传输在Webforms端检索数据所需的id。您可能还需要在使用后删除准备好的数据,或者在一段时间后删除准备好的数据,以便清理剩余的数据。
重新制作网络表单中的数据:
如果您不想将数据存储在某种缓存(数据库,文件,服务器缓存)中,并且您可以在Webforms请求中重新创建数据(显然您可以在其中创建大量数据) MVC请求),您也可以选择仅将该位数据传输到重新创建数据所需的Webform。性能差,但很好,因为用户总是会收到最新信息,如果不再需要数据,您就不必清理缓存。
为了能够共享在MVC控制器和Webform之间创建数据的功能,您应该将其移动到两个Web前端中使用的专用类。