@Display.Body_Editor(Text: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() })
所以使用这个Shape你不能设置Id,Model是你在Display上发送的anon(Text和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%"}
})
您需要将此添加到模板中,并在 TextArea Dictionary 参数中包含另一个参数,名为:{"id", "THE ID YOU LIKE"}。
如果您想了解更多信息,请查看有关 Shapes 的文档