2013-03-19 173 views
0

我一直在使用一个简单的网页表单应用程序在asp.net中缩短网址。我成功地完成了我的功能,当我更改url时,它应该自动复制到剪贴板。Clipboard.SetText()显示错误

我所做的文本值变量来存储像

shortUrl.Text = shortURL; 

我打电话剪贴板功能

clip_board(shortURL); 
之后

我的功能是

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

    } 

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

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

如何克服这个错误?

回答

3

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

在回应评论:

但它显示了精确值的消息框...

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

+0

但它显示了具有确切值的消息框,并且它没有访问剪贴板功能 – 2013-03-19 08:45:46