ueditor富文本编辑在 asp.net MVC下使用步骤

mvc项目中用到了这个富文本编辑就试着把遇到的问题个使用步骤在这里记录一下,希望大家少走弯路。

1.首先我们先下载net版本的uediot

r.

2.然后把整个文档拷贝到我们的项目中,记得是整个

3.下边是要修改ueditor.config.js文件

要修改的地方就一个

因为我的目录是这样的

4.接着修改net文件下config.json文件

这个就是要修改你上传一些文件要存储的路径,不多说了。(注意这里的路径如果不正确图片或者其他的就显示不出来的

5.就是要在你的html页面写Ueditor就可以了。

6.这里遇到的问题有两个

(1)通过form表单或者直接传给controller,文本编辑内容都取不到而且报错说验证XXX内容不安全

这是因为传过来的是html文本,我们要用FormCollection获取值并在controller加上 [ValidateInput(false)]

(2)第二个问题就是说找不到zeroclipboard.config is not a function(可能有的人遇不到这个问题)

这个就要修改ZeroClipboard.js了,具体原因看一下这个http://www.cnblogs.com/TiestoRay/p/4997195.html

近期该项目引入了Requirejs,结果发现在有富文本编辑器的页面都会在控制台报出如下异常:

Uncaught ReferenceError: ZeroClipboard is not defined                 ueditor.all.min.js:265

 

经查看代码后发现 ueditor.../third-party/zeroclipboard/ZeroClipboard.js中 输出方法的地方是酱紫的

复制代码
  if (typeof define === "function" && define.amd) {
    define(function() {
      return ZeroClipboard;
    });
  } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
    module.exports = ZeroClipboard;
  } else {
    window.ZeroClipboard = ZeroClipboard;
  }
复制代码

意思就是说

  • 如果当前页面的模块加载模式是AMD的 则定义模块
  • 如果是CommonJs的,则输出到模块 ZeroClipboard
  • 否则 把 ZeroClipboard 定义为全局变量

这样 解决方案就有两种。

①不使用模块加载模式来使用这个功能

这样方法需要修改一点源码,把上面这段代码替换成如下代码即可

复制代码
  if (typeof define === "function" && define.amd) {
    define(function() {
      return ZeroClipboard;
    });
  } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
    module.exports = ZeroClipboard;
  }
  window.ZeroClipboard = ZeroClipboard;
复制代码

 

②如果不修改源码,就得在模块加载时做处理了

首先是修改配置

require.config({
    baseUrl: '',
    paths: {
        ZeroClipboard: "./UEditor.../ZeroClipboard"//主要是加这句话
    }
});

然后是在调用这个模块并把模块定义到全局变量

require(['ZeroClipboard'], function (ZeroClipboard) {
    window['ZeroClipboard'] = ZeroClipboard;
});

 -------------------

 

以上就是所有遇到的问题和使用步骤。

 

posted on 2016-03-16 10:50  路还很长........继续走  阅读(3853)  评论(3编辑  收藏  举报

导航