Asp.net mvc 4 在Orchard CMS自定义模块中使用富文本编辑器

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都将被忽略;猜测与请求验证有关。如何为我的控制器禁用此功能,以

我正在Orchard CMS 1.7.1中创建一个自定义模块

到目前为止一切进展顺利(ish)

我的一个属性是字符串(称为InfoBubbleHtml)

我想在我的模块创建/编辑表单上使用富格文本编辑来进行输入

是否已有一个助手可以将我的属性呈现为富文本区域,而不仅仅是
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")