ASP.NET MVC实现剪切板功能

前言

关于复制粘贴的功能,好像不用劳师动众的写后端代码,JS就可以,但正如大家所知道的,兼容性问题,当然这么通用的功能怎么可能没有一个通用的方案呢,于是便找到了一款jquery插件 jquery.clip, perfect!但本篇并不是写如何使用jquery.clip,而是通过.net 的Clipboard类来实现。

代码实现

一、创建WebAPI,代码如下

using System.Windows.Forms;
using System.Threading;

namespace JYZS.Api
{
    public class ClipboardController : ApiController
    {
        [HttpGet]
        public string CopyToClipboard(string content)
        {
            Thread newThread = new Thread(new ThreadStart(() => { _CopyToClipboard(content); }));
            newThread.SetApartmentState(ApartmentState.STA);
            newThread.Start();
            //newThread.Join();//阻塞调用线程,直到被调用线程结束
            return "";
        }
        private void _CopyToClipboard(string content)
        {
            System.Windows.Forms.Clipboard.SetText(content);
        }
        [HttpGet]
        public string PasteFromClipboard()
        {
            string text = "";
            try
            {
                Thread newThread = new Thread(new ThreadStart(() => { text = _PasteFromClipboard(); }));
                newThread.SetApartmentState(ApartmentState.STA);
                newThread.Priority = ThreadPriority.Highest;
                newThread.Start();
                newThread.Join();//阻塞调用线程,直到被调用线程结束

                return text;
            }
            catch
            {
                return "";
            }
        }
        private string _PasteFromClipboard()
        {
            return System.Windows.Forms.Clipboard.GetText();
        }
    }
}

二、前端调用

        function fn_CopyToClipboard() {
            $.ajax({
                type: ‘GET‘,
                url: ‘/api/Clipboard/CopyToClipboard‘,
                data: { content: $.trim($(‘#Content‘).val()) },
                success: function (msg) {
                    if (msg == null || msg == ‘‘) { alert(‘已复制到剪切板‘); }
                    else alert(msg);
                },
                error: function (err) {
                    alert(‘复制到剪切板失败‘);
                }
            });
        }
        function fn_PasteFromClipboard() {
            $.ajax({
                type: ‘GET‘,
                url: ‘/api/Clipboard/PasteFromClipboard‘,
                data: { },
                success: function (msg) {
                    if (msg == null || msg == ‘‘) { alert(‘获取剪切板数据失败‘); }
                    else alert(msg);
                },
                error: function (err) {
                    alert(‘获取剪切板数据失败‘);
                }
            });
        }

POST:hope helpful to you!!!

类名、方法名及命名空间均为本人项目中命名,使用时请注意修改~

时间: 2024-12-12 20:20:48

ASP.NET MVC实现剪切板功能的相关文章

window下vnc连接ubuntu及双向剪切板功能

window下实现vnc连接远程ubuntu :http://www.linuxidc.com/Linux/2016-06/132442.htm 关于连接:上面文章可能会有个问题,锁屏状态下会无法连接:所以额外加两步: 1 开启自动登陆 2 锁屏关闭 双向剪切板:https://my.oschina.net/seava/blog/226966 关于易用性行:sudo vim /etc/rc.local 然后写入 vncconfig -nowin &   如此重启剪切板功能会一直支持(中文乱码解决

Asp.Net MVC页面静态化功能实现二:用递归算法来实现

上一篇提到采用IHttpModule来实现当用户访问网站的时候,通过重新定义Response.Filter来实现将返回给客户端的html代码保存,以便用户下一次访问是直接访问静态页面. Asp.Net MVC页面静态化功能实现一:利用IHttpModule,摒弃ResultFilter 后来想到可以通过WebRequest获取html代码,然后采用递归算法来实现.基本实现思路如下: 通过WebRequest获取超链接地址返回的html代码,并保存:通过正则表达式匹配html代码中所有的超链接hr

微信开发】【Asp.net MVC】-- 微信分享功能

[微信开发][Asp.net MVC]-- 微信分享功能 2017-01-15 09:09 by stoneniqiu, 12886 阅读, 15 评论, 收藏, 编辑 内嵌在微信中的网页,右上角都会有一个默认的分享功能.如下图所示,第一个为自定义的效果,第二个为默认的效果.实现了自定义的分享链接是不是更让人有点击的欲望?下面讲解下开发的过程. 一.准备,设置js接口安全域名 这需要使用微信的jssdk,先需要在微信公众号后台进行设置:公众号设置-->功能设置-->JS接口安全域名.打开这个页

android实现文本复制到剪切板功能(ClipboardManager)

Android也有剪切板(ClipboardManager),可以复制一些有用的文本到剪贴板,以便用户可以粘贴的地方使用,下面是使用方法 注意:导包的时候 API 11之前: android.text.ClipboardManagerAPI 11之后: android.content.ClipboardManager 复制代码代码如下: /** * 实现文本复制功能 * add by wangqianzhou * @param content */  public static void cop

[转] ASP.NET MVC 模型绑定的功能和问题

摘要:本文将与你深入探究 ASP.NET MVC 模型绑定子系统的核心部分,展示模型绑定框架的每一层并提供扩展模型绑定逻辑以满足应用程序需求的各种方法. 同时,你还会看到一些经常被忽视的模型绑定技术,并了解如何避免一些最常见的模型绑定错误. ASP.NET MVC 模型绑定通过引入自动填充控制器操作参数的抽象层.处理通常与使用 ASP.NET 请求数据有关的普通属性映射和类型转换代码来简化控制器操作. 虽然模型绑定看起来很简单,但实际上是一个相对较复杂的框架,由许多共同创建和填充控制器操作所需对

ASP.NET MVC实现网站验证码功能

转:http://www.cnblogs.com/liuxiaoji/p/4920382.html 网站添加验证码,主要为防止机器人程序批量注册,或对特定的注册用户用特定程序暴力破解方式,以进行不断的登录.灌水等危害网站的操作.验证码被广泛应用在注册.登录.留言等提交信息到服务器端处理的页面中. 在ASP.NET网站中应用验证码是很容易的,网上有很多的解决方案.最近在做一个OA项目,因系统采用的ASP.NET MVC框架,同样在登录页中需用到验证码,故需将原来在ASP.NET网站中使用的验证码移

[.NET开发] C#实现剪切板功能

C#剪切板 Clipboard类 我们现在先来看一下官方文档的介绍 位于:System.Windows.Forms 命名空间下 Provides methods to place data on and retrieve data from the system Clipboard. This class cannot be inherited. 提供一些方法来存放数据和取回数据从系统的剪切板,这个类不能被实例化. 从官方的描述我们可以看出Clipboard是一个用来存放一些临时数据来用的...

ASP.NET MVC 实现带论坛功能的网站 第一步——实现用户注册

首先我们要实现用户的注册功能.进入visual studio 点击文件->新建->项目->选择ASP.NET Web应用程序(.NET Framework)->选择的模板为MVC.创建成功的项目应该是这样的 这个时候在View文件夹下面Home文件夹有三个系统默认创建的三个.cshtml的网页文件,对于我们来说我们是不需要的所以可以把它删除掉,然后View文件夹下面还有个share文件夹下的东西也是我们不需要的一起删除掉,最后把View文件夹下的_ViewStart.cshtml也

ASP.NET MVC 实现带论坛功能的网站 第一步——-实现用户注册.

首先我们要实现用户的注册功能.进入visual studio 点击文件->新建->项目->选择ASP.NET Web应用程序(.NET Framework)->选择的模板为MVC.创建成功的项目应该是这样的 这个时候在View文件夹下面Home文件夹有三个系统默认创建的三个.cshtml的网页文件,对于我们来说我们是不需要的所以可以把它删除掉,然后View文件夹下面还有个share文件夹下的东西也是我们不需要的一起删除掉,最后把View文件夹下的_ViewStart.cshtml也