Clipboard.SetText()显示错误

时间:2013-03-19 08:38:32

标签: c# asp.net web-applications webforms

我一直在使用一个简单的Web表单应用程序来缩短asp.net中的url。我成功完成了我的功能,当我更改网址时,它会自动复制到剪贴板。

我已将文本值存储在变量中,如

   shortUrl.Text = shortURL; 

在此之后我调用剪贴板功能

 clip_board(shortURL);

我的功能是

 public void clip_board(string shortUrl)
    {
       MessageBox.Show(shortUrl);
       Clipboard.SetText(shortUrl);

    }

此处的消息框显示缩短的网址,但Clipboard.SetText()显示错误为

  

在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。确保您的Main函数上标有STAThreadAttribute。

如何克服此错误?

1 个答案:

答案 0 :(得分:3)

你说它是一个ASP.NET应用程序:在这种情况下,你的.NET代码将在服务器上运行,因此你无法访问客户端的剪贴板 - 也不能调用WinForms方法,例如MessageBox.Show

回应评论:

  

但是它会显示带有确切值的消息框...

您是否正在使用Visual Studio和Cassini Web服务器进行调试?在这种情况下,您可能会看到MessageBox.Show的输出,因为它在您当前会话的上下文中运行。但是,当您部署到IIS时,这将不起作用。