海洋工作室——网站建设专家:让 MVC 支持 CuteEditor Using CuteEditor under MVC
我在网上搜索了一圈,甚至是CUTEEDITOR官方网站都说目前不支持MVC,看下面的,CUTEEDITOR官方论坛,
http://cutesoft.net/forums/thread/59425.aspx
下面是他们管理员的回答,
http://topic.csdn.net/u/20090514/16/d4e8c5e7-1c0a-44f6-a95f-0cbf3ae4067b.html
上面博客问题还是没有解决,我就不去回答了,我直接写在我博客里面好了,给大家一个参考。
http://www.codeproject.com/KB/aspnet/fckeditor.aspx
上面这是针对FCKEDITOR的。
不过经过测试,发觉CuteEditor在MVC下是work的,只是取不到值而已。
这儿说的取值有两种:一是存值,即如何把CuteEditor值取出来存进数据;二是取值,即如何把数据从数据库里面取出来放在CuteEditor编辑器上。
如果是普通的WEB页面就非常简单了,本来我想封装成HTMLHEPER的,但做下来发觉非常麻烦。
我现在用一个小小的技巧来完成这个操作。
首先如果要想用好CuteEditor, 我建议好好看看随包的帮助文档,那个很有用。
进入主题:
存值:
我们知道使用MVC 绑定到页面的时候,它的MODEL 名字一定要和字段匹配的,否则MVC就不认识了。 开始我把CuteEditor 名字命名和那个数据库字段一样,发觉不行,后来我想用过input(type=text) 看看,发觉可以,这样问题就转嫁到如果把CuteEditor 值取到,然后放到 input里面了。我使用了JAVASCIPT 去取,果然取到了。下面是示意代码:
document.getElementById("Details").value = document.getElementById("<%=ceDescription.ClientID %>").getHTML();
return true;
}
简单说说上面的代码: Details是客户端控件input的ID,ceDescription 就是CuteEditor 控件了,getHTML()是CuteEditor 公开的JS方法(具体参考随包的帮助文档),好了上面的代码就是取值过程,当然相对于存数据工程又是提前预存过程,即存值。要注意的一点是把上面的JS方法帮到相应的控件事件上,比如说submit的那个onclick上,小技巧,就是把input 的type 改成hidden就更合理了。
下面简单说说取值(主要用于编辑回传值):
如果对于普通的WEB FORMS,其实取值非常简单,可是我们知道MVC不是基于事件驱动的,也就是说你的button放在页面上,它的服务器端事件是无效的,呵呵,不着急,经过测试,我发觉Page_Load这个事件还是可以执行的,大喜!各位看官,现在知道如何做了吧!!
{
ceDescription.Text = Model.Details;
}
好啦,CuteEditor 支持 MVC 啦或者说MVC 支持 CuteEditor 了,哈哈。
我也不知道目前有没有更优美的方法,反正我在网上是么有看到的,所以我就写了一下,希望对广大应用开发方面的程序员u用。