描述:最近c#项目中使用富文本编辑器Simditor,记录一下以便以后查看。
注:此项目是MVC架构的。
1.引用文件
项目中引用相应的css和js文件,注意顺序不能打乱,否则富文本编辑器不会正常显示。
<link rel="stylesheet" type="text/css" href="../styles/simditor.css" />
<script type="text/javascript" src="../scripts/jquery.min.js"></script>
<script type="text/javascript" src="../scripts/simditor/module.js"></script>
<script type="text/javascript" src="../scripts/simditor/hotkeys.js"></script>
<script type="text/javascript" src="../scripts/simditor/uploader.js"></script>
<script type="text/javascript" src="../scripts/simditor/simditor.js"></script>
2.HTML中富文本的定义
<div >
<h5>故障描述:</h5>
<div class="view">
<textarea id="Describe"></textarea>
</div>
</div>
3.初始化富文本
注意的参数:
textarea: $('#Describe'), //对应的html中富文本的ID。
url: '../../WebManage/WebNews/UploadPic', //对应的服务器的地址。(对应Controller中的Action)
params: null, //以键值对的方式,传递给后台的参数,若无填写null即可
fileKey: 'fileDataFileName', //服务器获取文件数据的参数名
<script type="text/javascript">
var editor1;
$(document).ready(function () {
editor1 = new Simditor({
textarea: $('#Describe'),
placeholder: '这里输入图文内容...',
pasteImage: true,
toolbar: ['title', 'fontScale', 'alignment', 'bold', 'italic', 'underline', 'strikethrough', 'color', '|',
'ol', 'ul', 'blockquote', 'code', 'table', '|', 'link', 'image', 'hr', '|', 'indent', 'outdent'],
upload: {
url: '../../WebManage/WebNews/UploadPic', //文件上传的接口地址
params: null, //键值对,指定文件上传接口的额外参数,上传的时候随文件一起提交
fileKey: 'fileDataFileName', //服务器端获取文件数据的参数名
connectionCount: 3,
leaveConfirm: '正在上传文件'
}
});
});
</script>
4.页面效果
页面中有“上传图片”和“外链图片”两个按钮供选择。
5.C#后台保存图片代码
后台图片的保存代码,["fileDataFileName"]就是上面"3"中的fileKey
/// <summary>
/// 编辑器提交图片
/// </summary>
/// <returns></returns>
public ActionResult UploadPic()
{
HttpPostedFileBase file = Request.Files["fileDataFileName"];
if (file != null)
{
//生成路径
string path = OperatorProvider.Provider.Current().Account + "_" + Util.Time.Now.Year
+ Util.Time.Now.Month.ToString("D2")
+ Util.Time.Now.Day.ToString("D2");
string strPath = HttpContext.Server.MapPath(string.Format("/Resource/Upload/{0}/", path));
if (!Directory.Exists(strPath))
{
Directory.CreateDirectory(strPath);
}
string filePath = Path.Combine(strPath, Path.GetFileName(file.FileName));
//保存图片
file.SaveAs(filePath);
return Success("上传成功!");
}
else
{
return Success("上传失败!");
}
}
6.Html前端页面的"保存"代码
前端页面获取数据用getValue即可。
var postData = {
//...
describe: editor1.getValue()
}
$.SaveForm({
url: "../../WebManage/WebNews/SaveForm?keyValue=" + keyValue,
param: postData,
loading: "正在保存数据...",
success: function () {
$.currentIframe().$("#gridTable").trigger("reloadGrid");
}
});
7.c#后端"保存"按钮
[ValidateInput(false)]必须加上,否则会提示:从客户端(*****)中检测到有潜在危险的......
/// <summary>
/// 保存新闻表单(新增、修改)
/// </summary>
/// <param name="keyValue">主键值</param>
/// <param name="newsEntity">新闻实体</param>
/// <returns></returns>
[HttpPost]
[AjaxOnly]
[ValidateInput(false)]
public ActionResult SaveForm(string keyValue, WebNewsEntity newsEntity)
{
newsBLL.SaveForm(keyValue, newsEntity);
return Success("操作成功。");
}
8.页面展示富文本保存的数据
前端页面展示用setValue 即可正常展示。
editor1.setValue(data.describe);
以上是使用富文本编辑器Simditor在C#中带图片上传的全部过程(是MVC架构的项目)。
仅供参考,如有问题,望指出。