我生成了一张vcard,并使用以下代码片段将其发送给客户端:
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", fileNameOnly));
Response.ContentType = "text/x-vcard";
Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-1");
Response.Write(vCard.ToString());
Response.End();但是,我需要在具有内部控件和UpdatePanel的页面上使用vCards。不幸的是,根据Update panel and Response write的说法,这不起作用并导致错误。我想知道有什么替代方法可以将电子名片/文件的内容发送到客户端浏览器,并使其显示不涉及Response.Write的“打开/保存”对话框?
发布于 2012-04-05 00:15:03
在异步回发期间不能使用Response.Write。无论执行什么控件,都需要将代码作为PostBackTrigger添加到更新面板中:
<Triggers>
<asp:PostBackTrigger ControlID="Button1" />
</Triggers>如果您愿意,也可以在代码隐藏中执行此操作:
ScriptManager.GetCurrent().RegisterPostBackControl(Button1);发布于 2012-04-05 02:49:30
。我的建议是删除更新面板,以防它仅用于VCard视点。
或者-在更新面板中放置一个控件,并在异步事件下初始化它的值。现在它可以工作了。
发布于 2012-09-26 18:09:01
您为什么不考虑使用单独的处理程序/页面来服务vcard?
这可能是最简单和干净的方式,而且它不会干扰任何其他与updatepanel相关的回发(异步或非同步)。
https://stackoverflow.com/questions/10014920
复制相似问题