1

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

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

   shortUrl.Text = shortURL; 

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

 clip_board(shortURL);

我的功能是

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

    }

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

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

如何克服这个错误?

4

1 回答 1

3

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

回应评论:

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

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

于 2013-03-19T08:44:06.167 回答