尝试使用WebMatrix在两个C#ASP.NET页面之间传递数据库查询结果

时间:2014-07-17 01:57:51

标签: c# asp.net razor webmatrix

我正在使用Microsoft WebMatrix创建一个基本的Web应用程序。为了加快开发过程,我决定使用通过WebMatrix程序提供的“Starter Site”。

在我的网站上,我遇到了一个显示问题,即我在其中一个页面上显示的表格太宽(并且用户需要在浏览器窗口的右侧滚动大量数据)。

该表正在从数据库查询填充,我认为解决显示问题的最佳方法是使用IFrame。但是由于IFrame无法直接获取表格,而是必须由其他网页“填充”,我现在必须在我的应用程序中的页面之间传递数据库查询的结果。

我已尝试使用Session变量执行此操作,但这仅显示为包含键值对,而实际上我的数据库查询的结果更接近于数组。

在我的页面顶部,我为数据库查询创建变量声明,如下所示 -

var db = Database.Open("AU");
var resultSetH = db.Query("SELECT 1;");

(我上面简化了)

我现在需要在(C#)asp页面之间传递'resultSetH'变量(在WebMatrix中)。

我怎样才能完成预定的任务?如果不使用MVC,这是否可行?

1 个答案:

答案 0 :(得分:1)

不,不,不!仅仅因为您无法在屏幕上显示某些数据而使用iframe并不是一个好方法。 iframe经常会产生其他问题。相反,只需使用具有固定宽度和scroll bars的div。

<div style="overflow: auto; width: 500px">Your really long data here.</div>

并且Session保存键值对,但值可以是任何对象。但是,Session在页面之间传递数据是一个糟糕的选择,因为Session并不与任何特定页面相关联,这使得很难处理在同一会话中打开多个窗口/标签的情况,并最终导致用户混淆或破坏您的申请。相反,您可以通过提供查询字符串参数将数据传递到新页面。并不是说我在这种情况下建议,因为在iframe中嵌入另一个页面会是一个坏主意,但我只是想说明会话可以存储任何可序列化的内容。