无法在 CKEditor 上显示 Xml SiteMap

Unable to display Xml SiteMap on CKEditor

Xml.cshtml

@Html.TextArea("", ViewData.TemplateInfo.FormattedModelValue.ToString())
<script type="text/javascript">
    CKEDITOR.replace('@(ViewData.TemplateInfo.HtmlFieldPrefix)', {
    allowedContent: true
});
</script>

视图模型

public class MyViewModel
{
    public int Id { get; set; }
    [UIHint("Xml")]
    public string Xml { get; set; }
}

查看

@model Project1.ViewModels.MyViewModel
@Html.EditorFor(model=>model.Xml)

控制器

public ActionResult MyAction()
{
     var sitemap = new XDocument(
     new XDeclaration("1.0", "utf-8", "yes"),
     new XElement(ns + "urlset",
        new XElement(ns + "url",
        new XElement(ns + "loc", "example.com"),
        new XElement(ns + "lastmod", String.Format("{0:yyyy-MM-dd}", DateTime.Now)),
        new XElement(ns + "changefreq", "Weekly"),
        new XElement(ns + "priority", "0.5")
     )));
     var viewModel = new MyViewModel();
     viewModel.Id = 5;
     viewModel.Xml = sitemap.ToString();    
     return View(viewModel);
}

在控制器内部,创建了站点地图并将包含 Xml 的视图模型发送到视图。在视图中,EditorFor 已成功转换为 CKEditor。但问题是它删除了 Xml 标签并显示纯文本。如果我显示源,Xml 可以正常看到。 我刚刚安装了 CodeSnippet 插件并在 config.js 中添加了 config.extraPlugins = 'codesnippet'; 但没有任何区别。 如何在 CKEditor 中将站点地图显示为 Xml?

CKEditor 是编辑 XML 文档的错误工具。

如果你稍微搜索一下,你会发现其他人已经尝试过了,但这恰恰违背了这个编辑器的目的,你将不得不做太多的自定义更改。

一般来说,不要尝试使用 HTML 编辑器来编辑 XML。搜索以 XML 设计的工具或使用纯文本区域