使用HttpContext.Current.Server.Execute多个时出错

时间:2012-11-04 14:50:15

标签: asp.net

我有cart.aspxmail.aspx等模板。我传给他们一些变量并使用此代码获取结果视图

MySession2.Current.customer = customer;
StringWriter _writer = new StringWriter();
HttpContext.Current.Server.Execute("mail.aspx", _writer);
modal_info_text.InnerHtml = _writer.ToString();

在第一行,我把变量放到session中。在我的mail.aspx文件中,我得到了这个变量。在其他行中,我得到了mail.aspx的结果视图并将它放到我的div中。 / p>

所以,如果我只使用这个就没有问题。但我需要使用另一个模板 - cart.aspx - 。所以如果我为cart.aspx使用相同的代码并将其放入我的购物车div,则会出错。这是错误:

The state information is invalid for this page and might be corrupted.

当我多次使用它时会出现什么问题?感谢。

1 个答案:

答案 0 :(得分:0)

这里可能的罪魁祸首可能是ViewState。在cart.aspx(或mail.aspx)中对它进行的任何更改(在ViewState中添加或删除项目)都可能会让这种情况爆发。我猜你试图重新使用相同的模板(购物车和邮件)进行整页浏览以及注入另一个页面。更好的方法可能是将可重用的组件放入用户控件(ascx)并根据需要进行渲染。