Asp.net mvc 4 在Orchard CMS自定义模块中使用富文本编辑器
我正在Orchard CMS 1.7.1中创建一个自定义模块 到目前为止一切进展顺利(ish) 我的一个属性是字符串(称为InfoBubbleHtml) 我想在我的模块创建/编辑表单上使用富格文本编辑来进行输入 是否已有一个助手可以将我的属性呈现为富文本区域,而不仅仅是Asp.net mvc 4 在Orchard CMS自定义模块中使用富文本编辑器,asp.net-mvc-4,orchardcms,Asp.net Mvc 4,Orchardcms,我正在Orchard CMS 1.7.1中创建一个自定义模块 到目前为止一切进展顺利(ish) 我的一个属性是字符串(称为InfoBubbleHtml) 我想在我的模块创建/编辑表单上使用富格文本编辑来进行输入 是否已有一个助手可以将我的属性呈现为富文本区域,而不仅仅是textarea或input字段 如果不是,我需要做什么才能让这个属性呈现富文本编辑器 提前谢谢 更新 作为此问题的更新/补充。。。我在当前文本区域中输入的任何HTML都将被忽略;猜测与请求验证有关。如何为我的控制器禁用此功能,以
textarea
或input
字段
如果不是,我需要做什么才能让这个属性呈现富文本编辑器
提前谢谢
更新
作为此问题的更新/补充。。。我在当前文本区域中输入的任何HTML都将被忽略;猜测与请求验证有关。如何为我的控制器禁用此功能,以便我可以在管理员中允许html
更新2
好的,我已经知道如何使用以下方法将其添加到我的视图中:
@Display.Body\u编辑器(文本:Model.InfoBubbleHtml,EditorFlavor:“html”)
知道如何设置编辑器的ID吗?@Display.Body\u编辑器(文本:Model.InfoBubbleHtml,EditorFlavor:“html”)正在呈现一个名为Body.editor.cshtml的形状
此文件位于:Orchard.Web\Core\Common\Views\Body.Editor.cshtml中
它的内容是
@using Orchard.Utility.Extensions;
@{
string editorFlavor = Model.EditorFlavor;
}
@Html.TextArea("Text", (string)Model.Text, 25, 80, new { @class = editorFlavor.HtmlClassify() })
因此,使用此形状无法设置Id,Model是您在显示器上发送的anon(文本和EditorFlavor)
Orchard.Core/Common上的Shapes.cs正在使用EditoFlavor字符串挂接备用项
public void Discover(ShapeTableBuilder builder) {
builder.Describe("Body_Editor")
.OnDisplaying(displaying => {
string flavor = displaying.Shape.EditorFlavor;
displaying.ShapeMetadata.Alternates.Add("Body_Editor__" + flavor);
});
}
因此呈现的最后一个文件是:TinyMVC\Views\Body-Html.Editor.cshtml
使用Orchard.Environment.Descriptor.Models
@{
var shellDescriptor = WorkContext.Resolve<ShellDescriptor>();
}
<script type="text/javascript">
var mediaPickerEnabled = @(shellDescriptor.Features.Any(x => x.Name == "Orchard.MediaPicker") ? "true" : "false");
var mediaLibraryEnabled = @(shellDescriptor.Features.Any(x => x.Name == "Orchard.MediaLibrary") ? "true" : "false");
</script>
@{
Script.Require("OrchardTinyMce");
Script.Require("jQueryColorBox");
Style.Require("jQueryColorBox");
}
@Html.TextArea("Text", (string)Model.Text, 25, 80,
new Dictionary<string,object> {
{"class", "html tinymce"},
{"data-mediapicker-uploadpath",Model.AddMediaPath},
{"data-mediapicker-title",T("Insert/Update Media")},
{"style", "width:100%"}
})
@{
var shellDescriptor=WorkContext.Resolve();
}
var mediaPickerEnabled=@(shellDescriptor.Features.Any(x=>x.Name==“Orchard.MediaPicker”)?“true”:“false”);
var mediaLibraryEnabled=@(shellDescriptor.Features.Any(x=>x.Name==“Orchard.MediaLibrary”)?“true”:“false”);
@{
脚本。要求(“果园”);
Script.Require(“jQueryColorBox”);
样式要求(“jQueryColorBox”);
}
@Html.TextArea(“Text”,(string)Model.Text,25,80,
新词典{
{“类”,“html tinymce”},
{“data mediapicker uploadpath”,Model.AddMediaPath},
{“数据媒体选择器标题”,T(“插入/更新媒体”)},
{“样式”,“宽度:100%”
})
您需要将其添加到模板中,并在TextArea字典参数中包含另一个名为:{“id”,“您喜欢的id”}的参数
查看有关形状的文档如果您想了解更多信息,可以修补
TinyMVC\Views\Body Html.Editor.cshtml
文件,使其能够在文本区域使用自定义名称/ID。修改非常简单-更换
@Html.TextArea("Text", (string)Model.Text, 25, 80,
与
现在,您可以在调用中使用附加参数PropertyName
:
@Display.Body_Editor(PropertyName:"InfoBubbleHtml", Text:Model.InfoBubbleHtml, EditorFlavor:"html")
缺点是您正在修补外来代码,每次更新TinyMVC模块中的此文件时都必须重新应用此修补程序
@Display.Body_Editor(PropertyName:"InfoBubbleHtml", Text:Model.InfoBubbleHtml, EditorFlavor:"html")