先看看视图层
在视图层,使用的是视图助手--HtmlHelper,代替我们网页中传统的表单标签元素,其中的m代表实体模型。通过视图助手,为我们生成id和name属性相同的textarea标签。
备注:
在ASP.NETMVC中,能提交表单数据的元素(各种类型的input标签,textarea等),其属性name的值于实体模型中的属性名相同时,传递到控制器中的实体模型或参数,会自动进行映射,方便前端到后台的数据传递。
1<divclass="layui-row">
2<divclass="layui-col-xs12">
3<divclass="layui-form-itemlayui-form-text">
4@Html.LabelFor(m=>m.Introduce,new{@class="layui-form-label"})
5<divclass="layui-input-block">
6@Html.TextAreaFor(m=>m.Introduce)@*<textareaid="Introduce"name="Introduce"></textarea>等同*@
7</div>
8</div>
9</div>
10</div>
js调用layui的富文本编辑器:
1<scripttype="text/javascript">
2layui.use('layedit',
3function(){
4varlayedit=layui.layedit;
5//配置图片接口
6//注意:layedit.set一定要放在build前面,否则配置全局接口将无效。
7layedit.set({
8uploadImage:{
9url:'/Course/UploadEditImg'//接口url
10,type:'post'//默认post
11}
12});
13//建立富文本编辑器,更多设置,看layui文档,这里只是核心要点
14layedit.build('Introduce');//build方法参数为id所对应的值,注意,此处不能加#符号!
15}
16
17</script>
以上是前端部分,要想实现在layui富文本编辑器中显示图片,看如下后台代码:
实体结果类.layui的接受的值不支持大写,所以属性全小写,这是根据layui,edit图片上传返回结果来编写的此结果类。
1usingSystem.Collections.Generic;
2
3namespaceLayuiMvc.Common.Result
4{
5publicclassEditorDataResult
6{
7publicintcode{get;set;}
8
9publicstringmsg{get;set;}
10
11publicDictionary<string,string>data{get;set;}
12}
13}
控制器如下:
要引用的命名空间没展示,只抽取了有关富文本的内容!
1//富文本编辑器图片上传
2publicActionResultUploadEditImg(HttpPostedFileBasefile)
3{
4EditorDataResulteditorResult=newEditorDataResult();
5if(file!=null&&!string.IsNullOrEmpty(file.FileName))
6{
7stringsaveAbsolutePath=Server.MapPath("~/CourseImages/EditorImages");
8stringsaveFileName=Guid.NewGuid().ToString("N")+"_"+file.FileName;
9stringfileName=Path.Combine(saveAbsolutePath,saveFileName);
10file.SaveAs(fileName);
11editorResult.code=0;
12editorResult.msg="图片上传成功!";
13editorResult.data=newDictionary<string,string>()
14{
15{"src","/CourseImages/EditorImages/"+saveFileName},
16{"title","图片名称"}
17};
18}
19else
20{
21editorResult.code=1;
22editorResult.msg="图片上传失败!";
23editorResult.data=newDictionary<string,string>()
24{
25{"src",""}
26};
27}
28JavaScriptSerializerjss=newJavaScriptSerializer();
29stringdata=jss.Serialize(editorResult);//转换为Json格式!
30
31returnJson(data);
32}
|